gpt4 book ai didi

node.js - Nodejs : When does a tick get executed

转载 作者:太空宇宙 更新时间:2023-11-03 23:10:46 27 4
gpt4 key购买 nike

Nodejs 有一个方法process.nextTick(fn),它将函数的执行延迟到下一个时钟周期。根据this article这可用于在对象的构造函数中发出事件,如下所示(从文章复制):

function StreamLibrary(resourceName) {      
var self = this;

process.nextTick(function() {
self.emit('start');
});

}

var stream = new StreamLibrary('fooResource');

stream.on('start', function() {
console.log('Reading has started');
});

如果没有process.nextTick,这将无法工作,因为在您有机会监听事件之前该事件就会被发出。但是,如何确定在添加事件监听器之前不会发出该事件?如果它是完全异步的,那么下一个刻度有可能在构造函数结束之前执行,因此忽略事件监听器。那么这个过程背后的规则是什么呢? Node 什么时候执行nextTick?

最佳答案

下一个价格变动将在...下一个价格变动执行。我认为这里的困惑在于“完全异步”的含义。

使用 Node.js,所有代码都在单个线程上运行。在当前tick完成之前,不会执行为下一个tick安排的任何代码。

因此,当您在构造函数中从下一个刻度发出事件时,可能附加处理程序的代码将在下一个刻度发生之前完成执行。

Node的异步和多线程部分是处理网络和IO等操作。这些函数调用在您的 JavaScript 代码运行时运行,但是当数据传回您的代码时,它直到下一个时钟周期才会运行。

关于node.js - Nodejs : When does a tick get executed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12342217/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com