|
@@ -13,7 +13,25 @@
|
|
|
4. process.nexTick
|
|
|
5. queueMicrotask
|
|
|
# js中异步任务执行规则
|
|
|
- 先顺序执行下去,有遇到异步任务将其放置一边,然后继续执行下面的任务,执行完同步任务后再去看异步任务中的微任务是否有执行完了的,如果有则执行,执行完后则去执行宏任务,以此来完成一次循环
|
|
|
+ 1. 先顺序执行下去,有遇到异步任务将其放置一边,然后继续执行下面的任务,执行完同步任务后再去看异步任务中的微任务是否有执行完了的,如果有则执行,执行完后则去执行宏任务,以此来完成一次循环
|
|
|
+# js中async 和await的细节
|
|
|
+### 1. await
|
|
|
+ 1. 在js中 await 需要在async函数内进行执行, 遇到await时会等同于 promise 任务,将会在宏任务执行时立即执行,但是在await阻塞后的任务将会被当作是微任务去进行,
|
|
|
+
|
|
|
+ ```
|
|
|
+ async function fn(){
|
|
|
+ await fn2();
|
|
|
+ ...dostm
|
|
|
+ }
|
|
|
+ // 等同于
|
|
|
+ function fn(){
|
|
|
+ fn2().then(()=>{
|
|
|
+ ...dostm
|
|
|
+ })
|
|
|
+ }
|
|
|
+ ```
|
|
|
+### 2. async
|
|
|
+ 1. 在js中的 async 相当于一个 promise 任务,
|
|
|
# js中promise和setTimeout谁先执行
|
|
|
1. 在js中的promise视为微任务,settimeout为宏任务 根据执行规则微任务先执行,所以promise会先执行
|
|
|
2. 示例代码
|