UNPKG

@reactivex/rxjs

Version:

Reactive Extensions for modern JavaScript

38 lines 1.14 kB
import { Immediate } from '../util/Immediate'; import { FutureAction } from './FutureAction'; /** * We need this JSDoc comment for affecting ESDoc. * @ignore * @extends {Ignored} */ export class AsapAction extends FutureAction { _schedule(state, delay = 0) { if (delay > 0) { return super._schedule(state, delay); } this.delay = delay; this.state = state; const { scheduler } = this; scheduler.actions.push(this); if (!scheduler.scheduledId) { scheduler.scheduledId = Immediate.setImmediate(() => { scheduler.scheduledId = null; scheduler.flush(); }); } return this; } _unsubscribe() { const { scheduler } = this; const { scheduledId, actions } = scheduler; super._unsubscribe(); if (actions.length === 0) { scheduler.active = false; if (scheduledId != null) { scheduler.scheduledId = null; Immediate.clearImmediate(scheduledId); } } } } //# sourceMappingURL=AsapAction.js.map