javascript - 停止监听请求库中的完整事件

标签 javascript node.js

目前,我有以下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/

相关文章:

javascript - 如何在 n 秒后调用 JavaScript 函数

javascript - 无法读取未定义的属性 'results' - var lat = data.results[0].geometry.location.lat;

javascript - Node.js Express 服务器 - 全局变量问题

javascript - 访问 Promise 内部设置的类属性

javascript - 解释 Math.floor(Math.random())

javascript - 在服务器发送事件的情况下面对 Javascript 冒泡

javascript - 将地理数据从 Firebase 导入到谷歌地图

javascript - 使用脚本创建隐藏的输入字段

javascript - react 组件库的 cjs 或 esm

node.js - Node 和快速路由 - 404 错误