asyncjs: `Uncaught (в обещании) Ошибка: ..` - PullRequest
0 голосов
/ 25 апреля 2018

Я использую метод 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").

...