问答题857/1593【Promise第26题】下面代码的输出是什么?

1function runAsync (x) { 2 const p = new Promise(r => setTimeout(() => r(x, console.log(x)), 1000)) 3 return p 4} 5function runReject (x) { 6 const p = new Promise((res, rej) => setTimeout(() => rej(`Error: ${x}`, console.log(x)), 1000 * x)) 7 return p 8} 9Promise.all([runAsync(1), runReject(4), runAsync(3), runReject(2)]) 10 .then(res => console.log(res)) 11 .catch(err => console.log(err)) 12
难度:
2022-01-09 创建

参考答案:

解析

.catch是会捕获最先的那个异常,在这道题目中最先的异常就是runReject(2)的结果。

结果

// 1s后输出
1
3
// 2s后输出
2
Error: 2
// 4s后输出
4

最近更新时间:2022-01-09

赞赏支持

预览

题库维护不易,您的支持就是我们最大的动力!