我正在使用async.js(https://caolan.github.io/async/docs.html#times)的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);
});
我正在通过请求错误的网址名称"notmyendpoint.prismic.io/api"
来强制执行404。