reliable-zeromq
Version:
A collection of reliable zeromq messaging constructs
29 lines • 2.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CancellableDelay = exports.Delay = void 0;
function Delay(aMS = 100) {
return new Promise((aResolve) => {
setTimeout(aResolve, aMS);
});
}
exports.Delay = Delay;
class CancellableDelay {
constructor() {
this.mNonce = 0;
this.mTimeoutMap = new Map();
}
Clear() {
this.mTimeoutMap.forEach((aTimeout) => {
clearTimeout(aTimeout);
});
}
Create(aMS = 100) {
return new Promise((aResolve) => {
const lNonce = ++this.mNonce;
const lTimeoutMap = this.mTimeoutMap;
this.mTimeoutMap.set(lNonce, setTimeout(function () { aResolve(); lTimeoutMap.delete(lNonce); }, aMS));
});
}
}
exports.CancellableDelay = CancellableDelay;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVsYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9TcmMvVXRpbHMvRGVsYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBZ0IsS0FBSyxDQUFDLE1BQWMsR0FBRztJQUVuQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsUUFBb0IsRUFBUSxFQUFFO1FBRS9DLFVBQVUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBTkQsc0JBTUM7QUFFRCxNQUFhLGdCQUFnQjtJQUt6QjtRQUhRLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDbkIsZ0JBQVcsR0FBZ0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUc1RCxDQUFDO0lBRUssS0FBSztRQUVSLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBd0IsRUFBRSxFQUFFO1lBRWxELFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBYyxHQUFHO1FBRTNCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxRQUFvQixFQUFRLEVBQUU7WUFFOUMsTUFBTSxNQUFNLEdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBRXJDLE1BQU0sV0FBVyxHQUFnQyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ2xFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsY0FBbUIsUUFBUSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEgsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0o7QUExQkQsNENBMEJDIn0=