pause/resume + deprecated write fix

This commit is contained in:
Ciro Spaciari
2024-11-15 16:45:55 -08:00
parent a7516d93bc
commit 67f7ff2eb6
2 changed files with 9 additions and 7 deletions

View File

@@ -2112,15 +2112,22 @@ ServerResponse.prototype = ServerResponsePrototype;
$setPrototypeDirect.$call(ServerResponse, Stream);
const ServerResponse_writeDeprecated = function _write(chunk, encoding, callback) {
if ($isCallable(encoding)) {
callback = encoding;
encoding = undefined;
}
if (!$isCallable(callback)) {
callback = undefined;
}
if (this[firstWriteSymbol] === undefined && !this.headersSent) {
this[firstWriteSymbol] = chunk;
callback();
if (callback) callback();
return;
}
ensureReadableStreamController.$call(this, controller => {
controller.write(chunk);
callback();
if (callback) callback();
});
};

View File

@@ -35,10 +35,8 @@ for (let expectedServer of [
test(`HTTP pause and resume (${expectedServer.length})`, async () => {
const server = http.createServer((req, res) => {
console.error("pause server request");
req.pause();
setTimeout(() => {
console.error("resume server request");
req.resume();
req.setEncoding("utf8");
req.on("data", chunk => {
@@ -63,16 +61,13 @@ for (let expectedServer of [
port: server.address().port,
},
res => {
console.error("pause client response");
res.pause();
setTimeout(() => {
console.error("resume client response");
res.resume();
res.on("data", chunk => {
resultClient += chunk;
});
res.on("end", () => {
console.error(resultClient);
server.close();
resolve();
});