Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export function toAbortablePromise(
observable: Observable,
signal?: ?AbortSignal,
): Promise {
if (signal == null) {
return observable.toPromise();
}
if (signal.aborted) {
return Promise.reject(DOMException('Aborted', 'AbortError'));
}
return observable
.race(
Observable.fromEvent(signal, 'abort').map(() => {
throw new DOMException('Aborted', 'AbortError');
}),
)
.toPromise();
}
Observable.fromEvent(signal, 'abort').map(() => {
throw new DOMException('Aborted', 'AbortError');
}),
)