Deployed the page to Github Pages.
This commit is contained in:
parent
1d79754e93
commit
2c89899458
62797 changed files with 6551425 additions and 15279 deletions
118
node_modules/rxjs/_esm2015/internal/operators/delayWhen.js
generated
vendored
Normal file
118
node_modules/rxjs/_esm2015/internal/operators/delayWhen.js
generated
vendored
Normal file
|
@ -0,0 +1,118 @@
|
|||
import { Subscriber } from '../Subscriber';
|
||||
import { Observable } from '../Observable';
|
||||
import { OuterSubscriber } from '../OuterSubscriber';
|
||||
import { subscribeToResult } from '../util/subscribeToResult';
|
||||
export function delayWhen(delayDurationSelector, subscriptionDelay) {
|
||||
if (subscriptionDelay) {
|
||||
return (source) => new SubscriptionDelayObservable(source, subscriptionDelay)
|
||||
.lift(new DelayWhenOperator(delayDurationSelector));
|
||||
}
|
||||
return (source) => source.lift(new DelayWhenOperator(delayDurationSelector));
|
||||
}
|
||||
class DelayWhenOperator {
|
||||
constructor(delayDurationSelector) {
|
||||
this.delayDurationSelector = delayDurationSelector;
|
||||
}
|
||||
call(subscriber, source) {
|
||||
return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));
|
||||
}
|
||||
}
|
||||
class DelayWhenSubscriber extends OuterSubscriber {
|
||||
constructor(destination, delayDurationSelector) {
|
||||
super(destination);
|
||||
this.delayDurationSelector = delayDurationSelector;
|
||||
this.completed = false;
|
||||
this.delayNotifierSubscriptions = [];
|
||||
this.index = 0;
|
||||
}
|
||||
notifyNext(outerValue, _innerValue, _outerIndex, _innerIndex, innerSub) {
|
||||
this.destination.next(outerValue);
|
||||
this.removeSubscription(innerSub);
|
||||
this.tryComplete();
|
||||
}
|
||||
notifyError(error, innerSub) {
|
||||
this._error(error);
|
||||
}
|
||||
notifyComplete(innerSub) {
|
||||
const value = this.removeSubscription(innerSub);
|
||||
if (value) {
|
||||
this.destination.next(value);
|
||||
}
|
||||
this.tryComplete();
|
||||
}
|
||||
_next(value) {
|
||||
const index = this.index++;
|
||||
try {
|
||||
const delayNotifier = this.delayDurationSelector(value, index);
|
||||
if (delayNotifier) {
|
||||
this.tryDelay(delayNotifier, value);
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
this.destination.error(err);
|
||||
}
|
||||
}
|
||||
_complete() {
|
||||
this.completed = true;
|
||||
this.tryComplete();
|
||||
this.unsubscribe();
|
||||
}
|
||||
removeSubscription(subscription) {
|
||||
subscription.unsubscribe();
|
||||
const subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);
|
||||
if (subscriptionIdx !== -1) {
|
||||
this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);
|
||||
}
|
||||
return subscription.outerValue;
|
||||
}
|
||||
tryDelay(delayNotifier, value) {
|
||||
const notifierSubscription = subscribeToResult(this, delayNotifier, value);
|
||||
if (notifierSubscription && !notifierSubscription.closed) {
|
||||
const destination = this.destination;
|
||||
destination.add(notifierSubscription);
|
||||
this.delayNotifierSubscriptions.push(notifierSubscription);
|
||||
}
|
||||
}
|
||||
tryComplete() {
|
||||
if (this.completed && this.delayNotifierSubscriptions.length === 0) {
|
||||
this.destination.complete();
|
||||
}
|
||||
}
|
||||
}
|
||||
class SubscriptionDelayObservable extends Observable {
|
||||
constructor(source, subscriptionDelay) {
|
||||
super();
|
||||
this.source = source;
|
||||
this.subscriptionDelay = subscriptionDelay;
|
||||
}
|
||||
_subscribe(subscriber) {
|
||||
this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));
|
||||
}
|
||||
}
|
||||
class SubscriptionDelaySubscriber extends Subscriber {
|
||||
constructor(parent, source) {
|
||||
super();
|
||||
this.parent = parent;
|
||||
this.source = source;
|
||||
this.sourceSubscribed = false;
|
||||
}
|
||||
_next(unused) {
|
||||
this.subscribeToSource();
|
||||
}
|
||||
_error(err) {
|
||||
this.unsubscribe();
|
||||
this.parent.error(err);
|
||||
}
|
||||
_complete() {
|
||||
this.unsubscribe();
|
||||
this.subscribeToSource();
|
||||
}
|
||||
subscribeToSource() {
|
||||
if (!this.sourceSubscribed) {
|
||||
this.sourceSubscribed = true;
|
||||
this.unsubscribe();
|
||||
this.source.subscribe(this.parent);
|
||||
}
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=delayWhen.js.map
|
Loading…
Add table
Add a link
Reference in a new issue