首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodeJS事件循环是如何工作的?

问NodeJS事件循环是如何工作的?
EN

Stack Overflow用户
提问于 2016-05-05 12:49:02
回答 2查看 650关注 0票数 3

下面的代码,

代码语言:javascript
复制
var fs = require('fs');

fs.watch('target.txt', function(event, fileName){
    console.log('Event: ' + event + ', for file: ' + fileName);
    });

Console.log('Now watching target.txt');

按照下面的架构,

1) fs.watch()将调用libuv。libuv将启动一个线程来跟踪target.txt上的change事件。来自libuv的结果将转到v8,并以回调的形式再次通过NodeJS Bindings传递给具有数据的缓冲区。

2) libuv在事件队列中添加change事件。当事件循环选择change事件时,相应的回调将在v8运行时执行。

​

​

我的理解正确吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-05 13:47:12

不你误会了。NodeJS没有线程,而是使用观测器模式进行单线程处理.事件循环等待事件发生(观察事件)。当事件发生时,它会调用它的处理程序。多线程方法的错觉来自于Node经常使用异步事件,定义要在给定任务完成时执行的回调函数。阅读更多的这里。

票数 1
EN

Stack Overflow用户

发布于 2016-05-05 13:50:56

本文详细介绍了事件循环。

https://nodesource.com/blog/understanding-the-nodejs-event-loop/

它提供了对整个过程的机械概述。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37051076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档