Angular 2 - 多个HTTP POST请求:处理每个请求的错误

时间:2017-03-30 04:23:40

标签: angular

我正在寻找一种方式,我可以发布多个HTTP POST请求,以防万一其中一个或多个错误,然后我就可以知道哪些错误。

我尝试通过observable实现许多逻辑但没有成功。请建议。

1 个答案:

答案 0 :(得分:1)

你可以使用Promises

for all requestItems {
    http.post(url, body).toPromise().catch(error => {
       // This request failed.
    })
}

或者如果你想等待所有人完成,你可以收集数组的承诺,然后使用

Promise.all(promises)
    .catch(error => ...)
    .then(results => ...);

可以在Handling errors in Promise.all

中看到

修改

你可以这样使用Promise.all:

// Create an array of your promises
const promises = [...];
const resolvedPromises = [];
promises.forEach(promise => {
    // Collect resolved promises - you may return some values from then and catch
    resolvedPromises.push(promise
        .then(result => 'OK')
        .catch(error => 'Error')
    );
});
Promise.all(resolvedPromises).then(results => {
    // results contains values returned from then/catch before
    console.log('Finished');
})