UNPKG

3.02 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3class ActionSubscription {
4 constructor(action) {
5 this.isUnsubscribed = false;
6 this._action = action;
7 }
8 unsubscribe() {
9 if (!this.isUnsubscribed) {
10 this.isUnsubscribed = true;
11 this._action();
12 }
13 }
14}
15class DefaultScheduler {
16 get now() {
17 return Date.now();
18 }
19 delay(dueTime) {
20 return new Promise(res => setTimeout(res, dueTime));
21 }
22 schedule(action, dueTime) {
23 const id = setTimeout(() => action(), dueTime);
24 return new ActionSubscription(() => clearTimeout(id));
25 }
26}
27exports.DefaultScheduler = DefaultScheduler;
28
29//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVFBO0lBSUUsWUFBWSxNQUFrQjtRQUh2QixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUk1QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFFRDtJQUNFLElBQUksR0FBRztRQUNMLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFlO1FBQ25CLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQWtCLEVBQUUsT0FBZTtRQUMxQyxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDL0MsTUFBTSxDQUFDLElBQUksa0JBQWtCLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztDQUNGO0FBYkQsNENBYUMiLCJmaWxlIjoic2NoZWR1bGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAnLi9zdWJzY3JpcHRpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVkdWxlciB7XG4gIHJlYWRvbmx5IG5vdzogbnVtYmVyO1xuICBkZWxheSh0aW1lOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+O1xuICBzY2hlZHVsZShhY3Rpb246ICgpID0+IHZvaWQsIGR1ZVRpbWU6IG51bWJlcik6IFN1YnNjcmlwdGlvbjtcbn1cblxuY2xhc3MgQWN0aW9uU3Vic2NyaXB0aW9uIGltcGxlbWVudHMgU3Vic2NyaXB0aW9uIHtcbiAgcHVibGljIGlzVW5zdWJzY3JpYmVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2FjdGlvbjogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihhY3Rpb246ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLl9hY3Rpb24gPSBhY3Rpb247XG4gIH1cblxuICB1bnN1YnNjcmliZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNVbnN1YnNjcmliZWQpIHtcbiAgICAgIHRoaXMuaXNVbnN1YnNjcmliZWQgPSB0cnVlO1xuICAgICAgdGhpcy5fYWN0aW9uKCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEZWZhdWx0U2NoZWR1bGVyIGltcGxlbWVudHMgU2NoZWR1bGVyIHtcbiAgZ2V0IG5vdygpIHtcbiAgICByZXR1cm4gRGF0ZS5ub3coKTtcbiAgfVxuXG4gIGRlbGF5KGR1ZVRpbWU6IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihyZXMgPT4gc2V0VGltZW91dChyZXMsIGR1ZVRpbWUpKTtcbiAgfVxuXG4gIHNjaGVkdWxlKGFjdGlvbjogKCkgPT4gdm9pZCwgZHVlVGltZTogbnVtYmVyKTogU3Vic2NyaXB0aW9uIHtcbiAgICBjb25zdCBpZCA9IHNldFRpbWVvdXQoKCkgPT4gYWN0aW9uKCksIGR1ZVRpbWUpO1xuICAgIHJldHVybiBuZXcgQWN0aW9uU3Vic2NyaXB0aW9uKCgpID0+IGNsZWFyVGltZW91dChpZCkpO1xuICB9XG59XG4iXX0=