mirror of
https://github.com/denoland/deno.git
synced 2024-11-25 15:29:32 -05:00
fix(ext/node): ClientRequest.setTimeout(0) should remove listeners (#19240)
Co-authored-by: crowlkats <crowlkats@toaxl.com>
This commit is contained in:
parent
91ca9904b5
commit
9ddb39d4cd
1 changed files with 13 additions and 2 deletions
|
@ -349,7 +349,10 @@ class ClientRequest extends OutgoingMessage {
|
||||||
this.socketPath = options!.socketPath;
|
this.socketPath = options!.socketPath;
|
||||||
|
|
||||||
if (options!.timeout !== undefined) {
|
if (options!.timeout !== undefined) {
|
||||||
this.timeout = getTimerDuration(options.timeout, "timeout");
|
const msecs = getTimerDuration(options.timeout, "timeout");
|
||||||
|
const timeout = AbortSignal.timeout(msecs);
|
||||||
|
timeout.onabort = () => this.emit("timeout");
|
||||||
|
this._timeout = timeout;
|
||||||
}
|
}
|
||||||
|
|
||||||
const signal = options!.signal;
|
const signal = options!.signal;
|
||||||
|
@ -414,7 +417,6 @@ class ClientRequest extends OutgoingMessage {
|
||||||
this._ended = false;
|
this._ended = false;
|
||||||
this.res = null;
|
this.res = null;
|
||||||
this.aborted = false;
|
this.aborted = false;
|
||||||
this.timeoutCb = null;
|
|
||||||
this.upgradeOrConnect = false;
|
this.upgradeOrConnect = false;
|
||||||
this.parser = null;
|
this.parser = null;
|
||||||
this.maxHeadersCount = null;
|
this.maxHeadersCount = null;
|
||||||
|
@ -803,6 +805,15 @@ class ClientRequest extends OutgoingMessage {
|
||||||
}
|
}
|
||||||
|
|
||||||
setTimeout(msecs: number, callback?: () => void) {
|
setTimeout(msecs: number, callback?: () => void) {
|
||||||
|
if (msecs === 0) {
|
||||||
|
if (this._timeout) {
|
||||||
|
this.removeAllListeners("timeout");
|
||||||
|
this._timeout.onabort = () => {};
|
||||||
|
this._timeout = undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
if (this._ended || this._timeout) {
|
if (this._ended || this._timeout) {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue