console.log(1);
setTimeout(function() {
console.log(2)
},1000);
new Promise(function(resolve) {
console.log(3);
resolve();
}
).then(function() {
console.log(4)
});
console.log(5);
/*
以同步异步的方式来判断的结果应该是:1、3、5、2、4
但是事实上结果是:1、3、5、4、2
为什么是这样呢?因为以同步异步的方式来解释执行机制是不准确的,更加准确的方式是宏任务和微任务:
因此执行机制便为:执行宏任务 ===> 执行微任务 ===> 执行另一个宏任务 ===> 不断循环
即:在一个事件循环中,执行第一个宏任务,宏任务执行结束,执行当前事件循环中的微任务,
执行完毕之后进入下一个事件循环中,或者说执行下一个宏任务
*/
这是我在网上看的一段代码
我想知道这里的宏任务和微任务指的是啥呀
这个new Promise是新建一个变量吗,怎么感觉像是定义完一个新变量之后就调用了它本身和一个then方法啊……这个new Promise是啥语法啊,完全看不懂
求求大佬
setTimeout(function() {
console.log(2)
},1000);
new Promise(function(resolve) {
console.log(3);
resolve();
}
).then(function() {
console.log(4)
});
console.log(5);
/*
以同步异步的方式来判断的结果应该是:1、3、5、2、4
但是事实上结果是:1、3、5、4、2
为什么是这样呢?因为以同步异步的方式来解释执行机制是不准确的,更加准确的方式是宏任务和微任务:
因此执行机制便为:执行宏任务 ===> 执行微任务 ===> 执行另一个宏任务 ===> 不断循环
即:在一个事件循环中,执行第一个宏任务,宏任务执行结束,执行当前事件循环中的微任务,
执行完毕之后进入下一个事件循环中,或者说执行下一个宏任务
*/
这是我在网上看的一段代码
我想知道这里的宏任务和微任务指的是啥呀
这个new Promise是新建一个变量吗,怎么感觉像是定义完一个新变量之后就调用了它本身和一个then方法啊……这个new Promise是啥语法啊,完全看不懂
