Из выборочных документов:
fetch('/users')
.then(checkStatus)
.then(parseJSON)
.then(function(data) {
console.log('succeeded', data)
}).catch(function(error) {
console.log('request failed', error)
})
Видишь этот улов? Будет срабатывать, когда выборка не удалась, вы можете снова получить ее. Взгляните на Promise API.
Пример реализации:
function wait(delay){
return new Promise((resolve) => setTimeout(resolve, delay));
}
function fetchRetry(url, delay, tries, fetchOptions = {}) {
function onError(err){
triesLeft = tries - 1;
if(!triesLeft){
throw err;
}
return wait(delay).then(() => fetchRetry(url, delay, triesLeft, fetchOptions));
}
return fetch(url,fetchOptions).catch(onError);
}
Редактировать 1: как предложено golopot, p-retry - хороший вариант.
Редактировать 2: упрощенный пример кода.
person
Isidrok
schedule
12.09.2017