UNPKG

@beenotung/tslib

Version:
65 lines 1.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.runLater = exports.later = exports.wait = exports.waitFor = void 0; const tslib_1 = require("tslib"); function waitFor(predictor, producer, interval = 0) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return new Promise(resolve => { const check = () => { if (predictor()) { resolve(producer()); } else { setTimeout(check, interval); } }; check(); }); }); } exports.waitFor = waitFor; function wait(args) { return new Promise(resolve => { const check = 'for' in args ? () => { const result = args.for(); if (result) { resolve(result); return; } setTimeout(check, args.interval); } : () => { const ready = args.when(); if (ready) { resolve(args.then()); return; } setTimeout(check, args.interval); }; check(); }); } exports.wait = wait; function later(delay = 0) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return new Promise(resolve => setTimeout(resolve, delay)); }); } exports.later = later; function runLater(f, delay = 0) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => { setTimeout(() => { try { resolve(f()); } catch (e) { reject(e); } }, delay); }); }); } exports.runLater = runLater; //# sourceMappingURL=wait.js.map