Skip to content

http: use arrow function to take advantage of lexical this? #7295

@originalfoo

Description

@originalfoo
  • Version: 6.2.1
  • Platform:
  • Subsystem: lib/_http_outgoing.js

In OutgoingMessage.prototype.end there's a self var that's only used once for the finish() function - would it be better to use an arrow function instead?

Current code: https://github.com/nodejs/node/blob/master/lib/_http_outgoing.js#L549

  var self = this;
  function finish() {
    self.emit('finish');
  }

Proposed change:

let finish = () => this.emit('finish'); // lexical `this`

Also, as the finish() function isn't used until the code around L584, would it be worth moving the function closer to where it's used (along with the callback check) to aid code clarity?

// keep these 3 blocks together as they are related

let finish = () => this.emit('finish');

if (typeof callback === 'function')
  this.once('finish', callback);

if (this._hasBody && this.chunkedEncoding) {
  ret = this._send('0\r\n' + this._trailer + '\r\n', 'latin1', finish);
} else {
  // Force a flush, HACK.
  ret = this._send('', 'latin1', finish);
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    httpIssues or PRs related to the http subsystem.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions