@message-queue-toolkit/core
Version:
Useful utilities, interfaces and base classes for message queue handling. Supports AMQP and SQS with a common abstraction on top currently
32 lines • 1 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.waitAndRetry = void 0;
const waitAndRetry = async (predicateFn, sleepTime = 20, maxRetryCount = 15) => {
return new Promise((resolve, reject) => {
let retryCount = 0;
function performCheck() {
if (maxRetryCount !== 0 && retryCount > maxRetryCount) {
resolve(predicateFn());
}
Promise.resolve()
.then(() => {
return predicateFn();
})
.then((result) => {
if (result) {
resolve(result);
}
else {
retryCount++;
setTimeout(performCheck, sleepTime);
}
})
.catch((err) => {
reject(err);
});
}
performCheck();
});
};
exports.waitAndRetry = waitAndRetry;
//# sourceMappingURL=waitUtils.js.map
;