Skip to content

Instantly share code, notes, and snippets.

@ajcrites
Last active August 29, 2015 14:23
Show Gist options
  • Save ajcrites/0e211b53a796a08ea2be to your computer and use it in GitHub Desktop.
Save ajcrites/0e211b53a796a08ea2be to your computer and use it in GitHub Desktop.
class AsyncArray extends Array {
[Symbol.iterator]() {
let iter = super[Symbol.iterator]();
return {
next() {
let elem = iter.next();
let promise = new Promise(resolve => setTimeout(
() => resolve(elem.value), 1000)
);
return {done: elem.done, value: promise};
}
};
}
}
async () => {
for (let x of AsyncArray.of(1, 2, 3)) {
let value = await x;
console.log(value);
}
}();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment