【发布时间】:2018-01-30 14:31:37
【问题描述】:
假设我有一个 http 调用来放置 /cart api,但由于某种原因,我们的后端没有返回更新的购物车,而是返回“成功”字符串。因此,为了获得更新的购物车,我需要再次获取 /cart 以查看新的购物车。最好的方法是什么?
遵循嵌套订阅工作但效果不佳,因为我不想每个组件都这样做:
http.put('/cart', data).subscribe(()=>{http.get('/cart').subscribe(()=>{/**update local cart*/})})
我尝试了 concat 但它为每个 http 调用发出值
http.put('/cart', data).concat(http.get('/cart')).subscribe(/**update local*/)
这有一个问题:如果 PUT 成功,但 GET 失败,/**update local*/ 部分仍然被调用。这不是预期的,因为当时我无法更新本地购物车。
我希望只有在前两个 observable 都完成时才调用下一个订阅部分,如果发生错误,请转到错误部分
【问题讨论】:
标签: angular rxjs observable rxjs5