Я хочу, чтобы моя функция выполнялась X (= 3) раза до успеха.
В моей ситуации я использую kinesis.putRecord
(из AWS API), и если он не работает - я хочу запустить его снова, пока он не будет успешным, но не более 3 попыток.
Я новичок в NodeJS, и написанный мной код плохо пахнет.
const putRecordsPromise = function(params){
return new Promise((resolve, reject) => {
kinesis.putRecord(params, function (err, data) {
resolve(err)
});
})
}
async function waterfall(params){
try{
let triesCounter = 0;
while(triesCounter < 2){
console.log(`try #${triesCounter}`)
let recordsAnswer = await putRecordsPromise(params)
if(!recordsAnswer){
console.log("success")
break;
}
triesCounter += 1;
}
// continue ...
} catch(err){
console.error(err)
}
}
waterfall(params)
Я обещаю ошибочный результат. После этого, если ошибка пуста, тогда все хорошо. в противном случае продолжайте выполнять ту же команду.
Я уверен, что есть более разумный способ сделать это. Любая помощь будет оценена.