确认我对nodejs事件循环的理解

问题描述 投票:0回答:1

我已经使用nodejs事件发射器创建了一个非常非常基本的nodejs事件循环实现,我正在寻找是否错过了任何东西的输入。评论和建议表示赞赏:

const eventEmitter = new (require("events"))();

let events = [
  "poll",
  "check",
  "close-callbacks",
  "timers",
  "pending-callbacks",
  "idle-prepare",
];

eventEmitter.once("poll", () => {
  console.log("in poll");
  eventEmitter.once("nextTick", () => console.log("nextTick 1"));
});

eventEmitter.once("nextTick", () => {
  console.log("nextTick 2");
  eventEmitter.once("check", () => console.log("check 1"));
  eventEmitter.once("nextTick", () => console.log("nextTick 3"));
  eventEmitter.once("timers", () => console.log("timers 1"));
  eventEmitter.once("poll", () => console.log("poll 2"));
});

while (true) {
  for (let event of events) {
    eventEmitter.emit(event);
    eventEmitter.emit('nextTick');
  }
  const totalLength = events.reduce((sum, item) => {
    return sum + eventEmitter.listenerCount(item);
  }, 0);
  console.log(totalLength);
  if (totalLength === 0) {
    return;
  }
}
node.js event-loop
1个回答
0
投票

[请在nodejs中找到有关事件循环的小文章,它说明了如何为nodejs在单线程环境中工作提供敏捷性。

Event Loop in NodeJS: How It Works!

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.