async.each/async.eachSeries does not work properly when there is another async.each/eachSeries inside the callback
What version of async are you using? 3.2.5
Which environment did the issue occur in (Node/browser/Babel/Typescript version) NodeJS(v18.15.0)+TypeScript(v5.2.2)
What did you do? Please include a minimal reproducible case illustrating issue.
await async.eachSeries(['a', 'b'], async (item) => {
await async.eachSeries(['c', 'd'], async (secondItem) => {
console.log('secondItem:', secondItem)
})
})
console.log('completed');
What did you expect to happen? Iterate over a, b, inside that iteration iterate over c, d.
What was the actual result? Iteration for c, d happens for "a" but not for "b", and the "completed" log never occurrs. (It gets stucked).
This happens too with async.each.
It works when using for await.
I'm seeing this same behavior.
I can also confirm that this happens when using await async.filter() inside an async function.
I cannot reproduce this. Make sure your typescript/babel/esbuild/etc. compiler is targeting ES2017 or later and preserving async functions.
❯ node async.js
item: a
secondItem: c
secondItem: d
item: b
secondItem: c
secondItem: d
completed