hap-nodejs
Version:
HAP-NodeJS is a Node.js implementation of HomeKit Accessory Server.
34 lines • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PromiseTimeout = PromiseTimeout;
exports.awaitEventOnce = awaitEventOnce;
/**
* @group Utils
*/
function PromiseTimeout(timeout) {
return new Promise(function (resolve) {
setTimeout(function () { return resolve(); }, timeout);
});
}
function awaitEventOnce(element, event, timeout) {
if (timeout === void 0) { timeout = 5000; }
return new Promise(function (resolve, reject) {
// eslint-disable-next-line prefer-const
var timeoutId;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
var resolveListener = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
clearTimeout(timeoutId);
resolve(args.length ? (args.length === 1 ? args[0] : args) : undefined);
};
timeoutId = setTimeout(function () {
element.removeListener(event, resolveListener);
reject(new Error("awaitEvent for event ".concat(event, " timed out!")));
}, timeout);
element.once(event, resolveListener);
});
}
//# sourceMappingURL=promise-utils.js.map