Я пытаюсь разрушить значения из асинхронного генератора в JavaScript, и я заметил, что когда я использую для ожидания ... из цикла с деструкцией массива, некоторые значения, кажется, пропускаются или игнорируются.
Пример: < /p>
async function* generate() {
yield [1, 2];
yield [3];
yield [4, 5];
}
(async () => {
for await (const [a, b] of generate()) {
console.log('a:', a, 'b:', b);
}
})();
< /code>
output: < /p>
a: 1 b: 2
a: 3 b: undefined
a: 4 b: 5
< /code>
Я ожидал, что вторая итерация бросит ошибку или что -то еще. Почему JavaScript относится к второму урожайности ([3]) как [3, неопределенно] вместо ошибок или пропуска? Это намеренно или просто ошибка?>
Подробнее здесь: https://stackoverflow.com/questions/796 ... -async-ite
Мобильная версия