Skip to content

Instantly share code, notes, and snippets.

@botmaster
Forked from mattdesl/load-images.js
Created May 24, 2017 19:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save botmaster/b7e26c418d0d5b676332c4683f21976a to your computer and use it in GitHub Desktop.
Save botmaster/b7e26c418d0d5b676332c4683f21976a to your computer and use it in GitHub Desktop.
load images in parallel
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);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment