首页 > 试题广场 >

以下代码的输出是什么?```javascriptfuncti

[单选题]
以下代码的输出是什么?
function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function main() {
const start = Date.now();
const p1 = delay(100).then(() => 'a');
const p2 = delay(200).then(() => 'b');
const p3 = delay(50).then(() => { throw new Error('c'); });
try {
const result = await Promise.allSettled([p1, p2, p3]);
console.log(result.map(r => r.status));
} catch(e) {
console.log('caught:', e.message);
}
}
main();
  • caught: c
  • ['fulfilled', 'fulfilled', 'rejected']
  • ['fulfilled', 'fulfilled', 'fulfilled']
  • ['rejected', 'rejected', 'rejected']
· Promise.all:一拒即拒。只要有一个 Promise 失败(rejected),整个结果就会立即变为失败,并返回该错误。不会等待其他 Promise 完成。 · Promise.allSettled:全等全报。它会等待所有 Promise 都完成(无论成功或失败),结果总是一个成功状态的数组,包含每个 Promise 的最终状态和值/原因。
发表于 2026-04-07 19:44:22 回复(0)