【发布时间】:2017-07-12 16:29:08
【问题描述】:
我有一些看起来像
的代码//service.ts
addProduct(productId) {
this.http.post('someUrl', ReqData).map(json).subscribe(doStuff);
}
//component.ts
addAllproducts(productsIds) {
productIds.forEach(productId => service.addProduct(productId);
}
我想要的是能够在调用下一个productId之前等待每个调用完成,而不使用window.setTimeout ..
【问题讨论】:
-
您可以将所有产品作为产品 ID 列表/数组发送,然后在后端代码上进行实际添加
-
很遗憾,我无法访问后端..
-
productIds.forEach(productId => service.addProduct(productId)不是有效的方法。在一个请求中将所有产品发送到服务器 -
看看 Angular 的承诺。这样,您可以链接您的请求并按顺序运行它们。它在 SO 上的几个问题中进行了描述,例如这里:stackoverflow.com/questions/25704745/…
-
@infamoustrey 或者只是将它们推入一个数组,通过
push()ing 到 is 和shift()ing 它。如果队列是干净的,它就会停止。
标签: javascript angular typescript ngrx