Skip to content

Commit

Permalink
mapAsyncIterator: add default value for 'rejectCallback' (#3011)
Browse files Browse the repository at this point in the history
  • Loading branch information
IvanGoncharov committed Apr 1, 2021
1 parent ecf732f commit 5ed55b8
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions src/subscription/mapAsyncIterator.js
Expand Up @@ -7,7 +7,9 @@ import type { PromiseOrValue } from '../jsutils/PromiseOrValue';
export function mapAsyncIterator<T, U>(
iterable: AsyncIterable<T> | AsyncGenerator<T, void, void>,
callback: (T) => PromiseOrValue<U>,
rejectCallback?: (any) => PromiseOrValue<U>,
rejectCallback: (any) => PromiseOrValue<U> = (error) => {
throw error;
},
): AsyncGenerator<U, void, void> {
// $FlowFixMe[prop-missing]
const iteratorMethod = iterable[Symbol.asyncIterator];
Expand All @@ -28,12 +30,11 @@ export function mapAsyncIterator<T, U>(
: 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:
Expand Down

0 comments on commit 5ed55b8

Please sign in to comment.