Skip to content Skip to sidebar Skip to footer

Queue.js To Preload Images Is Waiting Forever? (callback)

I'm using mbostock queue.js script to load several json files, by doing something like that: var q = queue() .defer(d3.json, 'world-110m.json') .defer(d3.tsv, 'world-country-names.

Solution 1:

Here is what queue.js is expecting from the callbacks:

The callbacks follow the Node.js convention where the first argument is an optional error object and the second argument is the result of the task.

Thus a simple version of your code might look like this:

var loadImage = function(src, cb) {
    var img = newImage();
    img.src = src;
    img.onload  = function(){ cb(null, img); };
    img.onerror = function(){ cb('IMAGE ERROR', null); };
};

queue()
    .defer(d3.json, "data/flare.json")
    .defer(d3.csv, "data/test.csv")
    .defer(loadImage, "img/test.png")
    .await( function(error, jsondata, csvdata, imagedata) {
        if (error) { console.log('error', error); } 
        else { console.log('success', jsondata, csvdata, imagedata) }
    });

I'm not sure what (if anything) you wanted to return about the image, but in the above example cb(null, img) I'm returning the whole object.

Post a Comment for "Queue.js To Preload Images Is Waiting Forever? (callback)"