小编tus*_*har的帖子

NodeJS 事件循环中的 process.nextTick() 何时被调用?

我已阅读官方文档和许多其他博客,process.nextTick()但我对某些主题有点困惑。

首先,写入中的回调process.nextTick()在下一次迭代开始之前执行。

其次,当在 I/O 周期内时,事件循环当前处于轮询阶段。在轮询阶段之后,事件循环进入检查阶段,在该阶段执行setImmediate方法中调用的任何回调。

现在在下面的代码中

const fs = require('fs');

function main() {
   fs.readFile('./xy.txt', function(err, buff){
      setTimeout(()=> console.log("timeout inside fs"),0);
      setImmediate(()=> console.log("immediate inside fs"));
      process.nextTick(()=>{console.log("process.nextTick")});
      console.log("inside fs");
   })
   console.log("called inside main fn in first-iteration");
}

main();
console.log("called in first-iteration);
Run Code Online (Sandbox Code Playgroud)

输出将是:

const fs = require('fs');

function main() {
   fs.readFile('./xy.txt', function(err, buff){
      setTimeout(()=> console.log("timeout inside fs"),0);
      setImmediate(()=> console.log("immediate inside fs"));
      process.nextTick(()=>{console.log("process.nextTick")});
      console.log("inside fs");
   })
   console.log("called inside main fn in first-iteration");
}

main();
console.log("called in first-iteration);
Run Code Online (Sandbox Code Playgroud)

在此期间, …

javascript event-loop node.js

2
推荐指数
1
解决办法
1347
查看次数

标签 统计

event-loop ×1

javascript ×1

node.js ×1