gpt4 book ai didi

node.js - node js中event.on()和event.once()的区别

转载 作者:IT老高 更新时间:2023-10-28 22:02:08 26 4
gpt4 key购买 nike

我正在测试 plus_one 应用程序,在运行它时,我只是想澄清一下我对 event.once() 和 event.on() 的概念

这是 plus_one.js

> process.stdin.resume();
process.stdin.on('data',function(data){
var number;
try{
number=parseInt(data.toString(),10);
number+=1;
process.stdout.write(number+"\n");
}
catch(err){
process.stderr.write(err.message+"\n");
}
});

这是 test_plus_one.js

var spawn=require('child_process').spawn;
var child=spawn('node',['plus_one.js']);

setInterval(function(){
var number=Math.floor(Math.random()*10000);
child.stdin.write(number+"\n");
child.stdout.on('data',function(data){
console.log('child replied to '+number+' with '+data);
});
},1000);

我在使用 child.stdin.on() 时收到一些 maxlistener 偏移警告,但在使用 child.stdin.once() 时却不是这样,为什么会发生这种情况?

是因为 child.stdin 正在听以前的输入吗?但在这种情况下,应该更频繁地设置 maxlistener 偏移量,但它只会在一分钟内发生一次或两次。

最佳答案

使用 EventEmitter.on(),您附加一个完整的监听器,而当您使用 EventEmitter.once() 时,它是一个一次性监听器,之后将分离射击一次。仅触发一次的监听器不计入最大监听器计数。

关于node.js - node js中event.on()和event.once()的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18740123/

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