我正在阅读MDN 上描述的“for wait of循环” 。它看起来令人印象深刻,所以我玩了一些代码,但令人惊讶的是我无法捕获那里抛出的错误。
'use strict';
const main = async() => {
const bar = [];
bar.push(new Promise((res) => { setTimeout(() => res(1), 1200); }));
bar.push(new Promise((res) => { setTimeout(() => res(2), 800); }));
bar.push(new Promise((res, rej) => { setTimeout(() => rej(3), 200); }));
try {
for await (const foo of bar) {
console.log('hey', foo);
}
} catch (err) {
console.error('err', err);
}
};
main();
Run Code Online (Sandbox Code Playgroud)
我的输出主要是像我预期的那样。但我不明白,为什么我会收到 UnhandledPromiseRejection?我什至没有发现那个错误吗?
$> node await-loop.js
(node:10704) UnhandledPromiseRejectionWarning: 3
(node:10704) UnhandledPromiseRejectionWarning: Unhandled promise …Run Code Online (Sandbox Code Playgroud)