目前,我有以下nodejs代码
'use strict';
const request = require('request');
var stream;
function connect() {
stream = request({
url: 'https://cloud-sse.xxx.com/stable/stocksUS?token=YOUR_TOKEN&symbols=spy',
headers: {
'Content-Type': 'text/event-stream'
}
})
}
stream.on('complete', () => {
console.log("Reconnecting");
connect();
});
在某些时候,我想停止监听 complete 事件。
我想知道,实现这一目标的正确方法是什么?
最佳答案
您可以使用removeListener() ,但您必须避免使用匿名函数( read here )。
示例:
'use strict';
const request = require('request');
var stream;
function connectHandler()
{
console.log("Reconnecting");
stream = request({
url: 'https://cloud-sse.xxx.com/stable/stocksUS?token=YOUR_TOKEN&symbols=spy',
headers: {
'Content-Type': 'text/event-stream'
}
});
}
stream.on('complete', connectHandler);
稍后,当您想要删除监听器时,您可以执行此操作:
stream.removeListener('complete', connectHandler);
如果您不介意删除 complete
事件上的所有监听器,您随时可以这样做
stream.removeAllListeners('complete');
关于javascript - 停止监听请求库中的完整事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56190760/