From a7e8a0945533bd5bc062f4a893757822b3056fa9 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Thu, 1 Apr 2021 14:11:59 +0300 Subject: [PATCH] mapAsyncIterator: make add default value for 'mapAsyncIterator' --- src/subscription/mapAsyncIterator.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/subscription/mapAsyncIterator.js b/src/subscription/mapAsyncIterator.js index 75c8ff5a85..eef86d9ab2 100644 --- a/src/subscription/mapAsyncIterator.js +++ b/src/subscription/mapAsyncIterator.js @@ -7,7 +7,9 @@ import type { PromiseOrValue } from '../jsutils/PromiseOrValue'; export function mapAsyncIterator( iterable: AsyncIterable | AsyncGenerator, callback: (T) => PromiseOrValue, - rejectCallback?: (any) => PromiseOrValue, + rejectCallback: (any) => PromiseOrValue = (error) => { + throw error; + }, ): AsyncGenerator { // $FlowFixMe[prop-missing] const iteratorMethod = iterable[Symbol.asyncIterator]; @@ -28,12 +30,11 @@ export function mapAsyncIterator( : asyncMapValue(result.value, callback).then(iteratorResult, abruptClose); } - let mapReject; - if (rejectCallback) { - // Capture rejectCallback to ensure it cannot be null. - const reject = rejectCallback; - mapReject = (error: mixed) => - asyncMapValue(error, reject).then(iteratorResult, abruptClose); + function mapReject(error: mixed) { + return asyncMapValue(error, rejectCallback).then( + iteratorResult, + abruptClose, + ); } /* TODO: Flow doesn't support symbols as keys: