danmactough / node-feedparser

Robust RSS, Atom, and RDF feed parsing in Node.js
Other
1.97k stars 192 forks source link

update `on(readable)` to not rely on magical `this` binding #288

Open Pomax opened 3 years ago

Pomax commented 3 years ago

This is an API update request.

Currently the README shows the following code:

feedparser.on('readable', function () {
  // This is where the action is!
  var stream = this; // `this` is `feedparser`, which is a stream
  ...
});

However, relying on non-standard ("magic") this binding breaks the declaration model of modern JS (we can't use arrow functions now, for example), not to mention being essentially unnecessary: we can just make it the callback argument:

feedparser.on('readable', function (stream) {
   ...
});

Now we can use modern arrow functions too, without this rebinding breaking things:

feedparser.on('readable', stream => this.handleStream(stream));