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

1const promise = new Promise((resolve, reject) => { 2 setTimeout(() => { 3 console.log('timer') 4 resolve('success') 5 }, 1000) 6}) 7const start = Date.now(); 8promise.then(res => { 9 console.log(res, Date.now() - start) 10}) 11promise.then(res => { 12 console.log(res, Date.now() - start) 13}) 14
难度:
2022-01-09 创建

参考答案:

解析

如果执行足够快的话,也可能两个都是1001。

Promise 的 .then 或者 .catch 可以被调用多次,但这里 Promise 构造函数只执行一次。或者说 promise 内部状态一经改变,并且有了一个值,那么后续每次调用 .then 或者 .catch 都会直接拿到该值。

结果

'timer'
'success' 1001
'success' 1002

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

赞赏支持

预览

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