学习随笔-async和await
----【希望可以帮助到大家,如有缺漏或者错误的知识点,欢迎大神们在评论区帮忙补充指正】----
任务队列优先级:
同步代码 > 微任务 > 宏任务
微任务包括:Promise.then、async/await、process.nextTick等
宏任务包括:setTimeout、setInterval、I/O操作等
执行时机:
setTimeout(fn, 0)并不是真正的0毫秒,而是至少4毫秒(浏览器规范)即使设置为0,也要等所有同步代码和微任务执行完毕
总结
async 函数必定返回 Promise,await 会暂停函数并把剩余代码注册成微任务。
错误用 try/catch,并发用 Promise.all,别在 forEach 里串行 await。
真正阻塞的是“JavaScript 执行线程”,事件循环从未停过;await 只是让出执行权。

