Buckets:
| import { SafeSubscriber, Subscriber } from './Subscriber'; | |
| import { isSubscription } from './Subscription'; | |
| import { observable as Symbol_observable } from './symbol/observable'; | |
| import { pipeFromArray } from './util/pipe'; | |
| import { config } from './config'; | |
| import { isFunction } from './util/isFunction'; | |
| import { errorContext } from './util/errorContext'; | |
| export class Observable { | |
| constructor(subscribe) { | |
| if (subscribe) { | |
| this._subscribe = subscribe; | |
| } | |
| } | |
| lift(operator) { | |
| const observable = new Observable(); | |
| observable.source = this; | |
| observable.operator = operator; | |
| return observable; | |
| } | |
| subscribe(observerOrNext, error, complete) { | |
| const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete); | |
| errorContext(() => { | |
| const { operator, source } = this; | |
| subscriber.add(operator | |
| ? | |
| operator.call(subscriber, source) | |
| : source | |
| ? | |
| this._subscribe(subscriber) | |
| : | |
| this._trySubscribe(subscriber)); | |
| }); | |
| return subscriber; | |
| } | |
| _trySubscribe(sink) { | |
| try { | |
| return this._subscribe(sink); | |
| } | |
| catch (err) { | |
| sink.error(err); | |
| } | |
| } | |
| forEach(next, promiseCtor) { | |
| promiseCtor = getPromiseCtor(promiseCtor); | |
| return new promiseCtor((resolve, reject) => { | |
| const subscriber = new SafeSubscriber({ | |
| next: (value) => { | |
| try { | |
| next(value); | |
| } | |
| catch (err) { | |
| reject(err); | |
| subscriber.unsubscribe(); | |
| } | |
| }, | |
| error: reject, | |
| complete: resolve, | |
| }); | |
| this.subscribe(subscriber); | |
| }); | |
| } | |
| _subscribe(subscriber) { | |
| var _a; | |
| return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber); | |
| } | |
| [Symbol_observable]() { | |
| return this; | |
| } | |
| pipe(...operations) { | |
| return pipeFromArray(operations)(this); | |
| } | |
| toPromise(promiseCtor) { | |
| promiseCtor = getPromiseCtor(promiseCtor); | |
| return new promiseCtor((resolve, reject) => { | |
| let value; | |
| this.subscribe((x) => (value = x), (err) => reject(err), () => resolve(value)); | |
| }); | |
| } | |
| } | |
| Observable.create = (subscribe) => { | |
| return new Observable(subscribe); | |
| }; | |
| function getPromiseCtor(promiseCtor) { | |
| var _a; | |
| return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise; | |
| } | |
| function isObserver(value) { | |
| return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete); | |
| } | |
| function isSubscriber(value) { | |
| return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value)); | |
| } | |
| //# sourceMappingURL=Observable.js.map |
Xet Storage Details
- Size:
- 3.15 kB
- Xet hash:
- 9fdd38c9c5c792f2fa2a75ae84eb9dd0f2f92664b79e3024dd0d09a4f66e3635
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.