mirror of
https://github.com/xfarrow/blink
synced 2025-06-27 09:03:02 +02:00
30 lines
639 B
JavaScript
30 lines
639 B
JavaScript
class KnexTimeoutError extends Error {
|
|
constructor(message) {
|
|
super(message);
|
|
this.name = 'KnexTimeoutError';
|
|
}
|
|
}
|
|
|
|
function timeout(promise, ms) {
|
|
return new Promise(function (resolve, reject) {
|
|
const id = setTimeout(function () {
|
|
reject(new KnexTimeoutError('operation timed out'));
|
|
}, ms);
|
|
|
|
function wrappedResolve(value) {
|
|
clearTimeout(id);
|
|
resolve(value);
|
|
}
|
|
|
|
function wrappedReject(err) {
|
|
clearTimeout(id);
|
|
reject(err);
|
|
}
|
|
|
|
promise.then(wrappedResolve, wrappedReject);
|
|
});
|
|
}
|
|
|
|
module.exports.KnexTimeoutError = KnexTimeoutError;
|
|
module.exports.timeout = timeout;
|