Skip to content

Commit a676afe

Browse files
committed
fixup! readline: fix pre-aborted signal question handling
1 parent a39a0e7 commit a676afe

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

lib/readline.js

+6-4
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ const {
5959
StringPrototypeStartsWith,
6060
StringPrototypeTrim,
6161
Promise,
62+
PromiseReject,
6263
Symbol,
6364
SymbolAsyncIterator,
6465
SafeStringIterator,
@@ -400,12 +401,13 @@ Interface.prototype.question = function(query, options, cb) {
400401
Interface.prototype.question[promisify.custom] = function(query, options) {
401402
options = typeof options === 'object' && options !== null ? options : {};
402403

403-
return new Promise((resolve, reject) => {
404-
if (options.signal?.aborted) {
405-
throw new AbortError();
406-
}
404+
if (options.signal && options.signal.aborted) {
405+
return PromiseReject(new AbortError());
406+
}
407407

408+
return new Promise((resolve, reject) => {
408409
this.question(query, options, resolve);
410+
409411
if (options.signal) {
410412
options.signal.addEventListener('abort', () => {
411413
reject(new AbortError());

0 commit comments

Comments
 (0)