简体   繁体   English

如何使用node.js启动/停止请求流?

[英]How can I start / stop a request stream with node.js?

I have 我有

return request({
  method: "POST",
  url: response.stream.url,
  json: true,
  forever: true,
  body: {
    sessionid: response.stream.sessionid,
    symbols: symbolParams
  }
}).on("data", onData)

That gives me data whenever it comes through. 无论什么时候发生,我都可以获得数据。 But what if I want to STOP listening on that stream, how can I do that? 但是,如果我想停止收听该流,那该怎么办呢?

It seems to implement Readable Stream interface, so pause() and resume() work. 它似乎实现了Readable Stream接口,所以pause()和resume()工作。

const request = require('request');
const req = request('http://google.com')
  .on('data', data => { 
      console.log(data);  
      req.pause(); 
    });

You can use https://nodejs.org/api/events.html#events_emitter_removelistener_eventname_listener 您可以使用https://nodejs.org/api/events.html#events_emitter_removelistener_eventname_listener

const req = request({
    method: "POST",
    url: response.stream.url,
    json: true,
    forever: true,
    body: {
        sessionid: response.stream.sessionid,
        symbols: symbolParams
    }
}).on("data", onData);
...
req.removeEventListener('data', onData);

You can also abort it: 你也可以中止它:

var req = request('http://google.com')...
...
req.abort();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM