Я хочу добавить логику повтора в свой HTTP-сервис javascript, который внутренне использует Axios и возвращает обещания. Цель состоит в том, чтобы повторить попытку/публикацию до тех пор, пока не будет устранена или не будет превышен лимит повтора. Я придумал этот проект (не работает, как это)Как сделать рекурсивное обещание
fetchSomething(numRetry) {
if (!numRetry)
numRetry = 0
return new Promise(function(resolve, reject) {
axios.get('/services/rest/vopa/sanomaloki/virheet')
.then(response => resolve(response))
.catch(response => {
if (numRetry > FETCH_RETRY_LIMIT)
reject(response)
else
return fetchSomething(numRetry + 1)
})
});
}
Насколько я знаю, называя fetchSomething в улове создает новое решение и отказаться от функции, но я хотел бы, чтобы разрешить или отклонить оригинальное обещание
возвращение fetchSomething (numRetry ++) – degr
Подумайте лучше назвать вашу функцию инсайдерской «отвергнуть» обратного вызова, на один уровень абстракции выше – degr