在Promise的内部函数使用reject和return reject有什么区别

在Chrome中都能运行,程序详情如下图:

clipboard.png

只要执行reject, 就会回退当前的任务队列到Project同级的状态?

阅读 4k
4 个回答

return reject没有特殊意义。 Promise是通过resolvereject使得Promise变成完成或失败状态的,你的return reject('2')是执行了reject('2')而跳出的。
如果提前return会导致Promise为pending状态。

return会跳出函数,不return如果你reject后面还有代码,会执行的

这里reject是一个函数,你的函数定义是什么?

没啥区别,和前面两个大佬回答的一样。就是中断当前函数执行。如果没有 return,后面会继续进行,如果后面还有 rej/res 执行时没有效果的。

new Promise((res,rej)=>{
    res();
    console.log(1);
    rej();
    console.log(2)
})

直接输出: 1,2。并且此时是 resolve 状态。

Promise {<resolved>: undefined}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题