Я хочу, чтобы моя функция выполнялась X (= 3) раза до успеха.
Я знаю, этот вопрос похож на этот вопрос , но ни один из ответов не помог.
Я просто хочу отправить это сообщение, чтобы ослабить, и если это не удается, попробуйте еще раз 3 раза.
const options = {
'text': 'Hello'
}
let flag = 0
function sendMessage () {
const promise = new Promise((resolve, reject) => {
axios.post(webhookURL, JSON.stringify(options))
.then(response => {
flag++
return resolve('SUCCESS: Sent slack webhook', response.data)
})
.catch(error => {
return reject(new Error('FAILED: Sent slack webhook', error))
})
})
return promise
}
for (let maxRetry = 0; maxRetry < 3; maxRetry++) {
const p = sendMessage()
p
.then((status) => {
console.log(status)
})
.catch((err) => {
console.log(err)
})
console.log('flag', flag)
if (flag >= 1) {
break
}
}
Оно запускается 3 раза, даже если оно прошло успешно.Обещание не работает должным образом:
flag 0
flag 0
flag 0
SUCCESS: Sent slack webhook
SUCCESS: Sent slack webhook
SUCCESS: Sent slack webhook
Я новичок в nodejs.Будет очень полезно, если кто-нибудь из вас сможет мне здесь помочь.