问答

根据输入写输出,promise.catch.then执行顺序问题

作者:admin 2021-04-22 我要评论

new Promise(resolve = {console.log(1);resolve('resolve');console.log(2);reject('error')}).catch((err) = {console.log(err);}).then((res) = {console.log...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
new Promise(resolve => {
console.log(1);
resolve('resolve');
console.log(2);
reject('error')
}).catch((err) => {
console.log(err);
}).then((res) => {
console.log(res)
});
Promise.resolve().then(() => {
console.log(3);
});
console.log(4);

主要的想不明白的地方有
为什么console.log(res)可以打印出resolved;
这里的.catch有没有执行;
为什么.then的执行在console.log(3)之后

前端小白有点被绕晕了。感谢回答!

###

执行resolve方法之后,Promise状态改变为resolved态,不会被catch,所以catch方法不执行

.then里的res接受的是resolve()的参数,所以可以打印出resolved

.then方法是微任务,主程序执行完后,再执行微任务,所以.then执行再3后

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 根据输入写输出,promise.catch.then执

    根据输入写输出,promise.catch.then执

  • vue 框架 实现下方走马灯,求教

    vue 框架 实现下方走马灯,求教

  • vue3 全局使用less 定义的class在控制

    vue3 全局使用less 定义的class在控制

  • 如何优雅的在HTML页面上展示视频播放器

    如何优雅的在HTML页面上展示视频播放器

腾讯云代理商
海外云服务器