关于和tick的关系,群里的小伙伴们尝试了各种办法,在昵称为“第七片魂器”大神的指点下,
我们先后用setImmediate和process.nextTick进行了实验。(node.js。。。
setImmediate(function () { console.log(1);}, 0);setTimeout(function () { console.log(2);}, 0);new Promise(function (resolve) { console.log(3); resolve(); console.log(4);}) .then(function () { console.log(5); });console.log(6);process.nextTick(function () { console.log(7);});console.log(8);
结果:3 4 6 8 7 5 2 1
事件的注册顺序如下:
setImmediate - setTimeout - promise.then - process.nextTick
因此,我们得到了优先级关系如下:
process.nextTick > promise.then > setTimeout > setImmediate
作者:何幻
链接:https://www.zhihu.com/question/36972010/answer/71338002 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。