macro-task(宏任务)→ micro-task(微任务)→ 任务源
从宏任务到微任务就是一个事件循环,任务源在第二个循环
宏任务, 微任务都是队列
宏任务源:SetTimeout,SetTimeout
微任务源:Promise
//demo
setTimeout(function() {
console.log('timeout1');
foo();
})
function foo(){
//一个promise对象
}
new Promise(function(resolve) {
console.log('promise1');
for(var i = 0; i < 1000; i++) {
i == 99 && resolve();
}
console.log('promise2');
}).then(function() {
console.log('then1');
})
console.log('global1');