В приложении nodeJs я использую for await
l oop, чтобы перебрать курсор Mon goose внутри функции async
. Примерно так:
let count = 0
const movies = Movies.find({}).cursor();
for await (const movie of movies) {
count++
}
console.log(count);
Это печатает 311, что правильно.
Проблема возникает, когда я пытаюсь выполнить asyn c операцию внутри l oop. Например:
let count = 0
const movies = Movies.find({}).cursor();
for await (const movie of movies) {
await new Promise(r => setTimeout(r, 10)); // <- any async operation
count++
}
console.log(count);
При печати 296. Некоторые документы были утеряны.
Я не уверен, что это проблема Mon goose Speci c. До сих пор я не мог воспроизвести его с другими асинхронными c итераторами.
Есть идеи? Спасибо!