Почему назначение разрушения в JavaScript пропускает определенные значения в асинхронных итераторах?Javascript

Форум по Javascript
Ответить
Anonymous
 Почему назначение разрушения в JavaScript пропускает определенные значения в асинхронных итераторах?

Сообщение Anonymous »

Я пытаюсь разрушить значения из асинхронного генератора в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»