tia
Version:
Time is All (logs driven test engine with ExtJs support)
43 lines • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
function delayed(ms, value) {
return new Promise(resolve => setTimeout(() => resolve(value), ms));
}
exports.delayed = delayed;
exports.timeoutError = 'timeoutError';
/**
* Waits a promise for specified timeout.
*
* @param {Promise} promiseToWait - promise to wait.
* @param {number} ms - timeout in milliseconds
* @returns {Promise} - promise which can be rejected with timeout or with error from promiseToWait.
* or resolved with result of promiseToWait.
*/
function wait(promiseToWait, ms) {
let rejectBecauseTimeout = true;
return new Promise((resolve, reject) => {
let timeoutId = null;
promiseToWait
.then(result => {
if (timeoutId) {
clearTimeout(timeoutId);
}
rejectBecauseTimeout = false;
resolve(result);
})
.catch(err => {
if (timeoutId) {
clearTimeout(timeoutId);
}
rejectBecauseTimeout = false;
reject(err);
});
timeoutId = setTimeout(() => {
if (rejectBecauseTimeout) {
reject(exports.timeoutError);
}
}, ms);
});
}
exports.wait = wait;
//# sourceMappingURL=promise-utils.js.map