async await in loop to promises code example
Example 1: foreach async typescript
for (const file of files) {
const contents = await fs.readFile(file, 'utf8');
console.log(contents);
}
Example 2: async await in forloops
// Series loop
async (items) => {
for (let i = 0; i < items.length; i++) {
// for loop will wait for promise to resolve
const result = await db.get(items[i]);
console.log(result);
}
}
// Parallel loop
async (items) => {
let promises = [];
// all promises will be added to array in order
for (let i = 0; i < items.length; i++) {
promises.push(db.get(items[i]));
}
// Promise.all will await all promises in the array to resolve
// then it will itself resolve to an array of the results.
// results will be in order of the Promises passed,
// regardless of completion order
const results = await Promise.all(promises);
console.log(results);
}
Example 3: async foreach
async function asyncForEach(array, callback) {
for (let index = 0; index < array.length; index++) {
await callback(array[index], index, array);
}
}
asyncForEach([1, 2, 3], async (num) => {
await waitFor(50);
console.log(num);
})
Example 4: C# foreach loop async but wait at end
public async Task RunAsync()
{
var tasks = new List<Task>();
foreach (var x in new[] { 1, 2, 3 })
{
var task = DoSomethingAsync(x);
tasks.Add(task);
}
await Task.WhenAll();
}
Example 5: loop async javascript
const forEachLoop = _ => {
console.log('Start')
fruitsToGet.forEach(async fruit => {
const numFruit = await getNumFruit(fruit)
console.log(numFruit)
})
console.log('End')
}