12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import { __read, __spreadArray } from "tslib";
- import { isScheduler } from '../util/isScheduler';
- import { Observable } from '../Observable';
- import { subscribeOn } from '../operators/subscribeOn';
- import { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';
- import { observeOn } from '../operators/observeOn';
- import { AsyncSubject } from '../AsyncSubject';
- export function bindCallbackInternals(isNodeStyle, callbackFunc, resultSelector, scheduler) {
- if (resultSelector) {
- if (isScheduler(resultSelector)) {
- scheduler = resultSelector;
- }
- else {
- return function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- return bindCallbackInternals(isNodeStyle, callbackFunc, scheduler)
- .apply(this, args)
- .pipe(mapOneOrManyArgs(resultSelector));
- };
- }
- }
- if (scheduler) {
- return function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- return bindCallbackInternals(isNodeStyle, callbackFunc)
- .apply(this, args)
- .pipe(subscribeOn(scheduler), observeOn(scheduler));
- };
- }
- return function () {
- var _this = this;
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var subject = new AsyncSubject();
- var uninitialized = true;
- return new Observable(function (subscriber) {
- var subs = subject.subscribe(subscriber);
- if (uninitialized) {
- uninitialized = false;
- var isAsync_1 = false;
- var isComplete_1 = false;
- callbackFunc.apply(_this, __spreadArray(__spreadArray([], __read(args)), [
- function () {
- var results = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- results[_i] = arguments[_i];
- }
- if (isNodeStyle) {
- var err = results.shift();
- if (err != null) {
- subject.error(err);
- return;
- }
- }
- subject.next(1 < results.length ? results : results[0]);
- isComplete_1 = true;
- if (isAsync_1) {
- subject.complete();
- }
- },
- ]));
- if (isComplete_1) {
- subject.complete();
- }
- isAsync_1 = true;
- }
- return subs;
- });
- };
- }
- //# sourceMappingURL=bindCallbackInternals.js.map
|