Asynchronous Iteration with "for-await-of"
for-await-of
This is an extremely useful feature. Basically it allows us to create loops of async code with ease!
This feature adds a new “for-await-of” loop that allows us to call async functions that return promises (or Arrays with a bunch of promises) in a loop. The cool thing is that the loop waits for each Promise to resolve before doing to the next loop.
const promises = [
new Promise(resolve => resolve(1)),
new Promise(resolve => resolve(2)),
new Promise(resolve => resolve(3))
];
// BEFORE
// Runs synchronize
async function beforeWait() {
for (const obj of promises) {
console.log(obj); // // logs 3 promises
}
}
// After
// Waits for promises to finish
async function afterWait() {
for await (const obj of promises) {
console.log(obj); // log
}
}
beforeWait(); // logs 3 promises
afterWait(); // logs 1,2,3