Я использую метод times () из async.js (https://caolan.github.io/async/docs.html#times).
Он в основном вызывает асинхронную функцию X раз, а затем, когда каждая асинхронная функция разрешается, он дает вам возможность консолидировать результаты в одном обратном вызове.
Я замечаю, что когда я имитирую ошибку 404 или любую другую ошибку, я могу передать ошибку в окончательный обратный вызов и либо визуализировать визуальное приглашение пользователю, записать его на сервер и т. Д.
Всякий раз, когда я вынуждаю ошибку, я всегда получаю сообщение об ошибке и в своей консоли:
Uncaught (in promise) Error: Unexpected status code [404] on URL...
Я делаю что-то не так с точки зрения обработки этой ошибки (Должен ли я на самом деле не видеть это, если я правильно обрабатывал ошибку)?
Моя асинхронная функция, а затем моя times()
реализация в основном выглядит так:
var getPrismicStories = function(pageNumber, callback) {
let stories = [];
Prismic.api("https://myendpoint.prismic.io/api",{accessToken}).then((api) => {
return api.query(Prismic.Predicates.any('document.type', ['blog-posts','video-posts']),{pageSize : 100, page : pageNumber, orderings : '[document.first_publication_date desc]',after:lastInitialStoryId})
}).then((prismicResponse) => {
stories = prismicResponse.results;
callback(null, stories);
}).catch((error) => {callback(error,stories)});
};
times(4, (i,next) => {
getPrismicStories(++i, function(err, stories) {
next(err, stories);
});
}, function(err, allStories) {
if(err){
console.error(err);
}
doSomethingWithFetchResults(allStories);
});
Я, например, заставляю 404 запрашивать неверное имя URL ("notmyendpoint.prismic.io/api"
).