Ваш код кажется правильным, я смоделировал ваш асинхронный генератор следующим образом:
const sleep = require('util').promisify(setTimeout);
async function* scan(arg) {
for (let i = 0; i < 4; i++) {
console.log(`yielding ${i}`);
await sleep(500);
yield i;
}
}
async function test()
{
for await (let item of scan({})) {
console.log(`got ${await item}`);
await sleep(1000);
}
}
test();
Выполнение не останавливается для меня, независимо от того, сколько итераций я предоставлю для scan
,
Таким образом, проблема не в sleep
, вы должны искать в другом месте.Возможно, проблема связана с mapper.scan
, или с этими http-запросами, или, может быть, вам просто нужно обновить ваш node.js (я нахожусь на v10.11.0).