下面的代码输出的结果是什么?为什么?
setTimeout(function () {
var np =new Promise(function (resolve,reject) {
console.log(1)
resolve()
})
np.then(_=>{
console.log(2)
})
console.log(3)
},1000)
var pro = new Promise((resolve, reject) => {
console.log(5)
resolve()
}).then(_=>{
setTimeout(function () {
console.log(6)
},0)
return 7;
}).then(n=>{
console.log(n)
})
console.log(4)
输出:5 4 7 6 1 3 2
setTimeout是宏任务,Promise是微任务