promise & async await总结

promise

  • promise 有三种状态 等待(pedding),成功(resolve) 拒绝(reject)
  • promise.then 会等待promise内部resolve,并且promise的executor执行完,接着将.then里面的东西放入微任务队列。new promise.resolve().then(callback) callback也会放入微任务队列
  • promise.then()的返回值始终是一个新的promise对象。promise的状态是.then回调的返回值。
  • promise.then中的回调会等待前一个promise的resolve,前一个.then函数没返回值会等到执行完成之后自动resolve
  • Promise.then会立即返回一个状态为pending的新Promise对象,这正是它能够支持链式调用的关键。
  • new 的promise不会自动resolve,但是.then里面会自动resolve。

碰到.then 跳过 找同步代码执行完成 回来

catch跟then一样,都会将任务放入微任务队列中。

async await

  • await 会等待右侧的promise完成之后将剩余代码放入微任务队列。
  • async对显式返回创建的Promise的处理会安排一个额外的微任务。
相关推荐
vipbic1 天前
用 Turborepo 打造 Strapi 插件开发的极速全栈体验
前端·javascript
天涯学馆1 天前
为什么 JavaScript 可以单线程却能处理异步?
前端·javascript
Henry_Lau6171 天前
主流IDE常用快捷键对照
前端·css·ide
陶甜也1 天前
使用Blender进行现代建筑3D建模:前端开发者的跨界探索
前端·3d·blender
我命由我123451 天前
VSCode - Prettier 配置格式化的单行长度
开发语言·前端·ide·vscode·前端框架·编辑器·学习方法
HashTang1 天前
【AI 编程实战】第 4 篇:一次完美 vs 五轮对话 - UnoCSS 配置的正确姿势
前端·uni-app·ai编程
JIngJaneIL1 天前
基于java + vue校园快递物流管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js
asdfg12589631 天前
JS中的闭包应用
开发语言·前端·javascript
kirk_wang1 天前
Flutter 导航锁踩坑实录:从断言失败到类型转换异常
前端·javascript·flutter