Every new change
This commit is contained in:
59
node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js
generated
vendored
Normal file
59
node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js
generated
vendored
Normal file
@ -0,0 +1,59 @@
|
||||
import { async } from '../scheduler/async';
|
||||
import { isDate } from '../util/isDate';
|
||||
import { OuterSubscriber } from '../OuterSubscriber';
|
||||
import { subscribeToResult } from '../util/subscribeToResult';
|
||||
export function timeoutWith(due, withObservable, scheduler = async) {
|
||||
return (source) => {
|
||||
let absoluteTimeout = isDate(due);
|
||||
let waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);
|
||||
return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));
|
||||
};
|
||||
}
|
||||
class TimeoutWithOperator {
|
||||
constructor(waitFor, absoluteTimeout, withObservable, scheduler) {
|
||||
this.waitFor = waitFor;
|
||||
this.absoluteTimeout = absoluteTimeout;
|
||||
this.withObservable = withObservable;
|
||||
this.scheduler = scheduler;
|
||||
}
|
||||
call(subscriber, source) {
|
||||
return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));
|
||||
}
|
||||
}
|
||||
class TimeoutWithSubscriber extends OuterSubscriber {
|
||||
constructor(destination, absoluteTimeout, waitFor, withObservable, scheduler) {
|
||||
super(destination);
|
||||
this.absoluteTimeout = absoluteTimeout;
|
||||
this.waitFor = waitFor;
|
||||
this.withObservable = withObservable;
|
||||
this.scheduler = scheduler;
|
||||
this.action = null;
|
||||
this.scheduleTimeout();
|
||||
}
|
||||
static dispatchTimeout(subscriber) {
|
||||
const { withObservable } = subscriber;
|
||||
subscriber._unsubscribeAndRecycle();
|
||||
subscriber.add(subscribeToResult(subscriber, withObservable));
|
||||
}
|
||||
scheduleTimeout() {
|
||||
const { action } = this;
|
||||
if (action) {
|
||||
this.action = action.schedule(this, this.waitFor);
|
||||
}
|
||||
else {
|
||||
this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this));
|
||||
}
|
||||
}
|
||||
_next(value) {
|
||||
if (!this.absoluteTimeout) {
|
||||
this.scheduleTimeout();
|
||||
}
|
||||
super._next(value);
|
||||
}
|
||||
_unsubscribe() {
|
||||
this.action = null;
|
||||
this.scheduler = null;
|
||||
this.withObservable = null;
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=timeoutWith.js.map
|
Reference in New Issue
Block a user