await promise自己的笔记总结。忘了来看看。

js会优先执行主任务,微任务会入队到微任务队列,等主任务执行完毕后再执行微任务。
消息队列如setTimeout的优先级小于微任务小于主任务。

await 阻塞同一调用域的会一直阻塞,阻塞子函数调用域只阻塞一层。
如:await promise 和 await function{promise}的区别)
await promise后面要想执行必须得等promise所有.then执行完毕
await function{promise}后面的要想执行必须得等函数里面的promise的第一个.then执行完毕。
函数内部的await阻塞结束后,函数外的await 才会再次阻塞一次结束。如:await function{ await promise promise}会把里面的await执行完毕,如果第二个promise还有.then未执行完,则会再执行外面的await,也只阻塞一层.then。
await阻塞结束后是否执行下面的主任务取决于微任务队列是否清空,未清空,则会执行 准备执行的主任务 之前入队的微任务。执行完毕后,再执行主任务。并且执行主任务的顺序是由内而外。
(注意:子级阻塞结束是指一层.then执行完毕,同级阻塞结束是指整个.then执行完毕)

await 可以理解为等待同一调用域的微任务执行完毕后再调用同一作用域的主任务。那么像 await f{promise}这种要理解为在第一层.then执行完毕后,f这个函数在await眼里就执行完毕了(如果有多层.then,实际就肯定没有执行完毕,但是await会认为执行完毕)故而会执行下面的主任务。而像 await promise这种则是所有的 .then执行完毕后,await才会认为执行完毕,故而执行下面的主任务。

这个是对的,能解决大部分问题。虽然乱,但是不懂的时候一定要静下心来看看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值