|
@@ -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
|