@iotize/device-client.js
Version:
IoTize Device client for Javascript
31 lines (30 loc) • 1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
function promiseTimeout(ms, promise, errorFactory) {
if (errorFactory === void 0) { errorFactory = function () { return new Error('Timeout error'); }; }
var startTime = new Date();
if (ms <= 0) {
var error = errorFactory({
timeout: ms,
startTime: startTime
});
return Promise.reject(error);
}
// Create a promise that rejects in <ms> milliseconds
var timeout = new Promise(function (resolve, reject) {
var id = setTimeout(function () {
clearTimeout(id);
var error = errorFactory({
timeout: ms,
startTime: startTime
});
reject(error);
}, ms);
});
// Returns a race between our timeout and the passed in promise
return Promise.race([
promise,
timeout
]);
}
exports.promiseTimeout = promiseTimeout;