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的设计就这样
添加回答
举报
0/150
提交
取消
