function f1() {
return new Promise((resolve,reject)=>{
resolve(new Promise((resolve1,reject1)=>{
resolve1(5)
}))
})
}
f1().then((res)=>{
console.log(res);
})
为啥一个then会响应两个resolve从而打印出5呢?
我认为应该输出Promise {<fulfilled>: 5}才对。。
function f1() {
return new Promise((resolve,reject)=>{
resolve(new Promise((resolve1,reject1)=>{
resolve1(5)
}))
})
}
f1().then((res)=>{
console.log(res);
})
为啥一个then会响应两个resolve从而打印出5呢?
我认为应该输出Promise {<fulfilled>: 5}才对。。
解决了,重新看了阮一峰老师的es6入门教程,其中介绍Promise.resolve()的时候说过如果resolve中是一个thenable对象,会立刻执行这个对象的then方法,哎还是看的不仔细😂
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
可以看下promise对thenable对象的处理方式