当前位置 : 主页 > 网页制作 > Nodejs >

node.js与浏览器的单线程

来源:互联网 收集:自由互联 发布时间:2021-06-16
console.log(‘start‘)console.log(‘browser = start 6 end 7 1 2 3 4‘);console.log(‘node = start 6 end 7 1 3 5 2 4‘)// 差异点// 执行栈都是只有一个,但是浏览器只有一个任务队列;node 有6个任务队列// 浏览
 
console.log(‘start‘)console.log(‘browser => start 6 end 7 1 2 3 4‘);console.log(‘node => start 6 end 7 1 3 5 2 4‘)// 差异点// 执行栈都是只有一个,但是浏览器只有一个任务队列;node 有6个任务队列// 浏览器一个任务队列中包括宏任务与微任务,宏任务结束立即运行微任务// node在每一个任务队列执行完成后执行微任务// process.nextTick 优先于promise执行setTimeout(() => {    console.log(1)    Promise.resolve(2).then(data => console.log(data))}, 100)setTimeout(() => {    console.log(3)    Promise.resolve(4).then(data => console.log(data))    process && process.nextTick(() => {        console.log(5)    })}, 100)new Promise((resolve,reject) => {    console.log(6)    resolve(7)}).then(data => {    console.log(data)})console.log(‘end‘)
网友评论