UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

48 lines (47 loc) 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.toPromise = void 0; var is_abort_signal_1 = require("../../../../../misc/abortable/is/is-abort-signal.cjs"); var create_abort_error_1 = require("../../../../../misc/errors/abort-error/create-abort-error.cjs"); var create_event_listener_1 = require("../../../../../misc/event-listener/functions/create-event-listener.cjs"); var to_typed_event_target_1 = require("../../../../../misc/event-listener/functions/to-typed-event-target.cjs"); var async_unsubscribe_1 = require("../../../../../misc/helpers/async-unsubscribe.cjs"); function toPromise(subscribe, options) { return new Promise(function (resolve, reject) { var removeAbortEventListener; if (options !== void 0 && (0, is_abort_signal_1.isAbortSignal)(options.signal)) { var signal_1 = options.signal; if (signal_1.aborted) { return reject((0, create_abort_error_1.createAbortError)({ signal: signal_1 })); } else { removeAbortEventListener = (0, create_event_listener_1.createEventListener)((0, to_typed_event_target_1.toTypedEventTarget)(signal_1), 'abort', function () { _reject((0, create_abort_error_1.createAbortError)({ signal: signal_1 })); }); } } var end = function () { if (removeAbortEventListener !== void 0) { removeAbortEventListener(); } (0, async_unsubscribe_1.asyncUnsubscribe)(function () { return unsubscribe; }); }; var _resolve = function (value) { end(); resolve(value); }; var _reject = function (error) { end(); reject(error); }; var unsubscribe = subscribe(_resolve); }); } exports.toPromise = toPromise;