有点不明白老师说的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 时会被指出的)

0
2
双越
回复
功不唐捐终入海
额。。。对,是 then 。我糊涂了,抱歉哈。
2020-06-20
共2条回复

一天时间高效准备前端技术一面 匹配大厂面试要求

针对时下面试高频考点,帮助新人js面试快速通关

4694 学习 · 1681 问题

查看课程