How to start / stop the flow of requests using 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)

This gives me data whenever this happens. But what if I want STOP to listen on this stream, how can I do this?

+4
source share
3 answers

You can use 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);
+5
source

It seems to implement the Readable Stream interface, so pause () and resume () work.

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

You can also interrupt it:

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

Source: https://habr.com/ru/post/1678052/


All Articles