@eljs/utils
Version:
Collection of nodejs utility.
37 lines (36 loc) • 751 B
JavaScript
/**
* 睡眠 ms 毫秒
* @param ms 毫秒
*/
export function sleep(ms) {
return new Promise(function (r) {
return setTimeout(r, ms);
});
}
/**
* 超时拒绝
* @param promise promise
* @param ms 超时时间
* @param message 超时信息
*/
export function timeout(promise, ms, message) {
return new Promise(function (resolve, reject) {
var finished = false;
promise.then(function (data) {
finished = true;
resolve(data);
}).catch(function (error) {
finished = true;
reject(error);
});
setTimeout(function () {
return maybeTimeout();
}, ms);
function maybeTimeout() {
if (finished) {
return;
}
reject(new Error(message || 'Timeout'));
}
});
}