From d51dabc25f2e178eb6b2c5b39600df8d6126eba0 Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Tue, 7 May 2024 09:39:43 +0200 Subject: [PATCH] perf: avoid setImmediate if body is reading (#3210) --- lib/api/readable.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/api/readable.js b/lib/api/readable.js index f0e4dbd34bc..a65a7fcb557 100644 --- a/lib/api/readable.js +++ b/lib/api/readable.js @@ -63,9 +63,13 @@ class BodyReadable extends Readable { // tick as it is created, then a user who is waiting for a // promise (i.e micro tick) for installing a 'error' listener will // never get a chance and will always encounter an unhandled exception. - setImmediate(() => { + if (!this[kReading]) { + setImmediate(() => { + callback(err) + }) + } else { callback(err) - }) + } } on (ev, ...args) {