Мои основные наблюдения:
- Если в цикле forEach выполняется асинхронная функция, например:
await Object.keys(o).forEach(function(key) { an_async_func() }
Тогда она не запускается.
Однако, когда я изменяю тот же код на:
for (var key in o) { an_async_func() }
Затем он запускается.
Вне планировщика задач, как и из CLI Windows, оба случая будут работатьПрекрасно работает асинхронная функция.
Я попытался создать минимальный жизнеспособный пример, но он не демонстрирует той же проблемы (пример, который я составил, ниже для того, чего он стоит).
'use strict'
const timeoutPromise = (time) => {
return new Promise((resolve, reject) => { setTimeout(() =>
{ console.log('timeout=',time); resolve('done') }, time) })
}
async function main() {
var o = { a:1,b:2 }
await Object.keys(o).forEach(function(key) {
timeoutPromise(5000)
console.log(key)
})
}
main()
ИтакЯ все еще ломаю голову над тем, в чем проблема.