promise.then()返回新的promise的结果状态由什么决定!!!

本文深入探讨了Promise对象的then()方法返回的新Promise的状态如何确定。主要关注于三种情况:当then()内的函数抛出异常、返回非Promise值、或返回另一个Promise时,新Promise的状态变化规律。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

promise.then()返回新的promise的结果状态由什么决定?
(1)简单表达:由 then()指定的回调函数执行的结果决定
(2)详细表述:

  • 如果抛出异常,新promise变为rejected,reason为抛出的 异常

  • 如果返回值是非promise的任意值,新promise变为resolve,value为返回 的值

  • 如果返回的是另一个新的promise,此promise的结果会成为新的promise的结果

new Promise((resolve,reject)=>{
   
            resolve(1)
            // reject(2);
       
    }).then(
        value=>{
            console.log("onResolve1()",value);
            // return 2;                                         //输出  onResolve1() 1   onResolve2() 2
            // return Promise.resolve(333);                          //onResolve1() 1        onResolve2() 333
            // return Promise.reject(444);                          //onResolve1() 1             onRject2() 444
            throw 5;                                                //onResolve1() 1              onRject2() 5
        },
        reason=>{
            console.log("onRject1()",reason)
        }
    ).then(
        value=>{
            console.log("onResolve2()",value)
        },
        reason=>{
            console.log("onRject2()",reason)
            return Promise.resolve(666);
        }
    ).then(
        value=>{
            console.log("onResolve3()",value);
        },
        reason=>{
            console.log("onReject3()",reason);
        }
    )

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值