Skip to content

Instantly share code, notes, and snippets.

@commuterjoy
Last active September 24, 2015 08:47
Show Gist options
  • Save commuterjoy/7604230bb891f69ce142 to your computer and use it in GitHub Desktop.
Save commuterjoy/7604230bb891f69ce142 to your computer and use it in GitHub Desktop.
var loaded = 1;
for(i=0; i<10; i++){
var f = (function (n) {
setTimeout(function () {
console.log(n, loaded++); // do callback when loaded == 10;
}, Math.random() * 3000)
})(i)
}
let load = src => {
return new Promise(function(resolve, reject) {
let o = document.createElement('script');
o.async = o.defer = true;
o.src = src;
o.addEventListener('load', () => resolve(src)); // will resolve on script loaded event
let s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(o, s.nextSibling);
});
}
let done = () => console.log('all done');
let uhoh = err => console.log(err);
Promise
.all(urls.map(src => load(src)))
.then(done)
.catch(uhoh);
@commuterjoy
Copy link
Author

Things to talk about ...

  • understands loops
  • closures
  • self-executing anonymous functions
  • async programming (eg, won't execute in order)
  • promises

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment