老师帮看一下为什么无法捕获错误
来源:4-1 Promise.resolve() 和 Promise.reject()
WYW265672
2022-05-20 23:22:02
// 具有 then 方法的对象作为参数
const thenable = {
then(resolve, reject) {
console.log('then');
// resolve('data');
reject('reason'); // 老师下面的catch为什么捕获不了这里的错误
}
};
// 因为Promise.resolve(thenable)是pending状态,所以决定不了then执行哪个回调函数.
// 但是thenable里面的then方法会直接执行,所以执行结果的返回的Promise的状态决定了Promise.resolve(thenable).then()执行哪个回调函数
Promise.resolve(thenable).then(
data => console.log(data),
err => console.log(err)
).catch(
err=>console.log(err+'!')
);
console.log(Promise.resolve(thenable)); // Promise {<pending>}1回答
好帮手慕久久
2022-05-21
同学你好,then方法的第二个函数是用来捕获错误的,该错误被then捕获了,所以catch没有执行:

建议调整一下:


祝学习愉快!
相似问题