Browse Source

fix:day24

e 1 year ago
parent
commit
42a4088a89
2 changed files with 102 additions and 0 deletions
  1. 11 0
      day24/html/6.宏任务 微任务.html
  2. 91 0
      day24/js/6.宏任务 微任务.js

+ 11 - 0
day24/html/6.宏任务 微任务.html

@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+<body>
+    <script src="../js/6.宏任务 微任务.js"></script>
+</body>
+</html>

+ 91 - 0
day24/js/6.宏任务 微任务.js

@@ -0,0 +1,91 @@
+/**
+ * 异步任务:宏任务 微任务
+ * 宏任务:整体的script代码、settimeout、setinterval
+ * 微任务:promise process.nextTick
+ * 代码的执行顺序:
+ * 先执行主线栈中(同步任务),在执行异步任务
+ * 先执行所有的微任务 全部执行完成后 在执行宏任务
+ */
+
+// setTimeout(function() {
+//     console.log('1');//a1
+// })
+// new Promise(function(resolve) {
+//     console.log('2');
+//     resolve()
+// }).then(function() {
+//     console.log('3');//b1
+// })
+// console.log('4');
+// 2 4 3 1
+
+
+// console.log(1)
+// setTimeout(function(){
+//   console.log(2);
+//   let promise = new Promise(function(resolve, reject) {
+//       console.log(7);
+//       resolve()
+//   }).then(function(){
+//     console.log(8)
+//   });
+// },1000);// 宏1
+// setTimeout(function(){
+//   console.log(10);
+//   let promise = new Promise(function(resolve, reject) {
+//       console.log(11);
+//       resolve()
+//   }).then(function(){
+//     console.log(12)
+//   });
+// },0);//宏2
+// let promise = new Promise(function(resolve, reject) {
+//     console.log(3);
+//     resolve()
+// }).then(function(){
+//   console.log(4) //b1
+// }).then(function(){
+//   console.log(9) // b2
+// });
+// console.log(5)
+
+// 1 3 5 4 9 10 11 12 2 7 8
+
+
+console.log('1');
+setTimeout(function() {
+    console.log('2');
+    // process.nextTick(function() {
+    //     console.log('3');
+    // })//a1
+    new Promise(function(resolve) {
+        console.log('4');
+        resolve();
+    }).then(function() {
+        console.log('5')//a2
+    })
+})//宏1
+// process.nextTick(function() {
+//     console.log('6');
+// }) //微1
+new Promise(function(resolve) {
+    console.log('7');
+    resolve();
+}).then(function() {
+    console.log('8') // 微2
+})
+setTimeout(function() {
+    console.log('9');
+    // process.nextTick(function() {
+    //     console.log('10');
+    // })
+    new Promise(function(resolve) {
+        console.log('11');
+        resolve();
+    }).then(function() {
+        console.log('12')
+    })
+})//宏2
+
+
+// 1 7  8 2 4  5 9 11 12