为了账号安全,请及时绑定邮箱和手机立即绑定

promise的.then返回的一个新promise,他的状态和值,问题好大

promise的.then返回的一个新promise,他的状态和值,问题好大

GCT1015 2019-02-25 12:35:32
promise的.then返回的一个新promise,他的状态和值,有很多问题。我一直是这么理解的:新的promise 的状态取决于原promise的状态,值呢,有2种情况如果原promise为resovel。那么值等于原promise的.then函数中的返回值,没有返回值就等于原promise的resolve值如果原promise为reject, 那么值等于原promise的reject的值而    Promise.reject('a error')        .then(res => console.log('res'), err => console.log('err'))        .then(res => console.log('res'), err => console.log('err'));结果是:errres上来状态就不对,不理解第二个为啥是res
查看完整描述

2 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

这和JS的设计有关,JS的错误处理是顺序的

不单单是promise的错误处理这样,try..catch..也是一样的

举一个简单的例子:


try {

  try {

    x=x;

  } catch(e) {

    x=1;

  };

  x=2;

} catch(e) {

  x=3;

}

在这里一样的,里面的try...catch语句的错误被吞掉了,或者说被处理了

promise的错误也是一样的,说这是局限也可以,其实也许JS的设计就这样


查看完整回答
反对 回复 2019-03-07
  • 2 回答
  • 0 关注
  • 1902 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号