【发布时间】:2019-04-23 00:37:30
【问题描述】:
在 foreach 中调用 Promise 的最佳方式是什么?
我有一个数组,需要将每个项目发送到 RestFull API。 但同时,我必须检查响应是否为真(我有一个计数器'errorSendPayment')。 在所有请求之后,如果我有一个(或多个)错误,我想知道是否发送布尔值或 Promise。
如何改进我的代码?
public sendPaymentValues(sale: any, session: string): Promise<boolean> {
const headers = this.getHeader();
// counter
let errorSendPayment = 0;
sale.data.list.forEach(payment=> {
this.http.post(`${api}payment/`, payment, headers)
.toPromise()
.then((result: any) => {
if (!result.sucess) {
errorSendPayment++;
}
})
.catch((response: HttpErrorResponse) => {
this.httpErrorResponseHandler(response);
});
});
const promise: Promise<boolean> = new Promise((resolve, reject) => {
if (errorSendPayment <= 0) {
resolve();
} else {
reject();
}
});
return promise;
}
【问题讨论】:
标签: angular typescript angular4-httpclient