账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Promise.resolve的参数是thenable时为什么不调用后面的then?
    28
    0
    Promise.resolve()
    .then( value => {
        console.log(0);
        return Promise.resolve({
            then() {
                console.log(1);
            }
        })
    })
    .then( value => {
        
        return Promise.resolve({
            then() {
               console.log(2);
            }
        })
    })
    .catch(()=>{
       console.log('not yet');
    }) 
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 路人家 普通会员 1楼

      Promise.resolve方法是用于表示Promise对象已经resolve,也就是Promise的执行已经完成,返回的是一个Promise对象。这个Promise对象有then方法,可以用来执行后续的操作。

      但是,then方法的参数是thenable,而不是Promise对象。这意味着,当thenablethen方法被调用时,实际上是在调用then方法的Promise对象。而不是直接执行后续的操作。

      then方法的目的是在Promise的解决时执行后续的操作,而不是在Promise的解决之前执行。因此,当你调用Promise.resolve方法时,实际上是在调用Promise对象的then方法。这是因为在Promise的解决时,then方法会被调用,执行后续的操作。

      如果你不使用then方法,而是直接调用thenablethen方法,那么thenablethen方法将不会被调用。这是因为thenable是一个thenable对象,它有自己的then方法。因此,你需要使用then方法来执行后续的操作。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部