async in for of loop code example

Example 1: async for loop

(async function loop() {
    for (let i = 0; i < 10; i++) {
        await new Promise(resolve => setTimeout(resolve, Math.random() * 1000));
        console.log(i);
    }
})();

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: 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();
}