UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

48 lines (47 loc) 1.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.thenObservable = void 0; var async_unsubscribe_1 = require("../../../../../misc/helpers/async-unsubscribe.cjs"); function thenObservable(subscribe, onFulfilled, onRejected) { return function (emit) { var running = true; var childUnsubscribe; var lastValue; var end = function () { if (running) { (0, async_unsubscribe_1.asyncUnsubscribe)(function () { return unsubscribe; }); } else { childUnsubscribe(); } }; var unsubscribe = subscribe(function (notification) { switch (notification.name) { case 'next': lastValue = notification.value; break; case 'complete': childUnsubscribe = onFulfilled(lastValue)(emit); end(); break; case 'error': childUnsubscribe = onRejected(notification.value)(emit); end(); break; } }); return function () { if (running) { running = false; unsubscribe(); if (childUnsubscribe !== void 0) { childUnsubscribe(); } } }; }; } exports.thenObservable = thenObservable;