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

时间:2017-05-27 23:13:10

标签: node.js request

我有

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

只要有数据,它就会给我数据。但是,如果我想停止收听该流,我该怎么办呢?

3 个答案:

答案 0 :(得分:5)

似乎实现了Readable Stream接口,所以pause()和resume()工作。

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

答案 1 :(得分:5)

您可以使用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);

答案 2 :(得分:4)

你也可以中止它:

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