UNPKG

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