相关疑难解决方法(0)

nextTick vs setImmediate,直观解释

我对nextTick和setImmediate之间的差异感到非常困惑.我已经在互联网上阅读了有关它们的所有文档,但我仍然不明白它们是如何工作的.

例子:

function log(n) { console.log(n); }
Run Code Online (Sandbox Code Playgroud)

setImmediate

setImmediate(function() {
  setImmediate(function() {
    log(1);
    setImmediate(function() { log(2); });
    setImmediate(function() { log(3); });
  });
  setImmediate(function() {
    log(4);
    setImmediate(function() { log(5); });
    setImmediate(function() { log(6); });
  });
});

//1 2 3 4 5 6
Run Code Online (Sandbox Code Playgroud)

nextTick

process.nextTick(function() {
  process.nextTick(function() {
    log(1);
    process.nextTick(function() { log(2); });
    process.nextTick(function() { log(3); });
  });
  process.nextTick(function() {
    log(4);
    process.nextTick(function() { log(5); });
    process.nextTick(function() { log(6); });
  });
});

//1 4 2 3 5 6
Run Code Online (Sandbox Code Playgroud)

为什么这些结果?请用视觉或非常容易理解的方式解释.甚至节点核心开发人员也不同意人们应该如何理解nextTick和setImmediate.

资料来源:

node.js

87
推荐指数
4
解决办法
3万
查看次数

标签 统计

node.js ×1