Buckets:
| 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 (...args) { | |
| return bindCallbackInternals(isNodeStyle, callbackFunc, scheduler) | |
| .apply(this, args) | |
| .pipe(mapOneOrManyArgs(resultSelector)); | |
| }; | |
| } | |
| } | |
| if (scheduler) { | |
| return function (...args) { | |
| return bindCallbackInternals(isNodeStyle, callbackFunc) | |
| .apply(this, args) | |
| .pipe(subscribeOn(scheduler), observeOn(scheduler)); | |
| }; | |
| } | |
| return function (...args) { | |
| const subject = new AsyncSubject(); | |
| let uninitialized = true; | |
| return new Observable((subscriber) => { | |
| const subs = subject.subscribe(subscriber); | |
| if (uninitialized) { | |
| uninitialized = false; | |
| let isAsync = false; | |
| let isComplete = false; | |
| callbackFunc.apply(this, [ | |
| ...args, | |
| (...results) => { | |
| if (isNodeStyle) { | |
| const err = results.shift(); | |
| if (err != null) { | |
| subject.error(err); | |
| return; | |
| } | |
| } | |
| subject.next(1 < results.length ? results : results[0]); | |
| isComplete = true; | |
| if (isAsync) { | |
| subject.complete(); | |
| } | |
| }, | |
| ]); | |
| if (isComplete) { | |
| subject.complete(); | |
| } | |
| isAsync = true; | |
| } | |
| return subs; | |
| }); | |
| }; | |
| } | |
| //# sourceMappingURL=bindCallbackInternals.js.map |
Xet Storage Details
- Size:
- 2.32 kB
- Xet hash:
- 8bcbde82491c1f746ebaec98f27a2646c85ddf9d4956ba5ad603222c8a798516
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.