# How would you run this async loop in sequence?

**URL:** <https://forum.kirupa.com/t/how-would-you-run-this-async-loop-in-sequence/679760>\
**Category:** web dev\
**Created:** [March 31, 2026, 2:00pm UTC](https://forum.kirupa.com/t/how-would-you-run-this-async-loop-in-sequence/679760 "2026-03-31T14:00:06Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![sarah\_connor](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/sarah_connor/32/31258_2.png) [@sarah\_connor](https://forum.kirupa.com/u/sarah_connor)\
**Post date:** [March 31, 2026, 2:00pm UTC](https://forum.kirupa.com/t/how-would-you-run-this-async-loop-in-sequence/679760/1 "2026-03-31T14:00:06Z")

</div>

Consider this snippet.

```javascript
ids.forEach(async (id) => {
  await fetchUser(id);
});
console.log('done');

```

Why is this not sequential, and what simple loop should replace it.

Sarah

---

<div class="post-metadata">

**Author:** ![WaffleFries](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/wafflefries/32/31185_2.png) [@WaffleFries](https://forum.kirupa.com/u/WaffleFries)\
**Post date:** [March 31, 2026, 2:07pm UTC](https://forum.kirupa.com/t/how-would-you-run-this-async-loop-in-sequence/679760/2 "2026-03-31T14:07:07Z")

</div>

`forEach` doesn’t await the async callback, so it fires all the fetches and `done` logs immediately.

WaffleFries

---

<div class="post-metadata">

**Author:** ![Ellen1979](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/ellen1979/32/31260_2.png) [@Ellen1979](https://forum.kirupa.com/u/Ellen1979)\
**Post date:** [March 31, 2026, 11:28pm UTC](https://forum.kirupa.com/t/how-would-you-run-this-async-loop-in-sequence/679760/3 "2026-03-31T23:28:05Z")

</div>

Use `for...of` with `await` if you want strict sequence, though if order does not matter `Promise.all` is usually faster for something like 20 user fetches.

Ellen
