UNPKG

ix

Version:

The Interactive Extensions for JavaScript

27 lines (25 loc) 637 B
class ActionSubscription { constructor(action) { this.isUnsubscribed = false; this._action = action; } unsubscribe() { if (!this.isUnsubscribed) { this.isUnsubscribed = true; this._action(); } } } export class DefaultScheduler { get now() { return Date.now(); } delay(dueTime) { return new Promise(res => setTimeout(res, dueTime)); } schedule(action, dueTime) { const id = setTimeout(() => action(), dueTime); return new ActionSubscription(() => clearTimeout(id)); } } //# sourceMappingURL=scheduler.mjs.map