有点不明白老师说的resolve状态只会指then,reject只会执行catch。
来源:8-7 Promise有哪三种状态

功不唐捐终入海
2020-06-20
let p2 = Promise.reject(‘err’);
p2.then(()=>{
console.log(‘我永远不会被执行’);
return ‘abc’
}).then((str)=>{
console.log(我也不会被执行!${str}
);
},(err)=>{
console.error(‘err’,err);
}).catch((err)=>{
console.err(‘err’,err);
})
在我的记忆中。then可以定义两个参数,第一个为成功执行的函数,第二个为失败执行的函数。这样不就是 当我是reject的时候我还是可以执行then啊。只是执行的是第二个函数。
如果promise返回失败,then文件中又没有第二个参数,他就会继续向下找,直到找到then中对失败的处理为止,或者找到catch()为止,期间的成功都不会执行。
如果then中只写成功的回调函数的话,就和老师说的一样了。resolve执行then回调,reject执行catch()回调。
请老师答疑。
写回答
1回答
-
双越
2020-06-20
但实际使用时,一般都往 resolve 传一个参数,这一点一定要明白。
(你在实际工作中,往 resolve 传两个参数,在 code review 时会被指出的)
022020-06-20
相似问题