load images in parallel
May 8, 2015 ยท View on GitHub
function loadImage(url, callback) { var image = new Image(); image.onload = function() { callback(null, image); }; image.onerror = function() { callback(new Error('Could not load image at ' + url)); }; image.src = url; }
function loadImages(urls, callback) { var returned = false; var count = 0; var result = new Array(urls.length); urls.forEach(function(url, index) { loadImage(url, function(error, item) { if (returned) return; if (error) { returned = true; return callback(error); } result[index] = item; count++; if (count === urls.length) { return callback(null, result); } }); }); }
var imageUrls = ['one.png', 'two.png', 'three.png']; loadImages(imageUrls, function(err, images) { if (err) throw err; console.log('All images loaded', images); });