【发布时间】:2018-04-23 13:31:48
【问题描述】:
插入注意:这个问题与大多数其他与诸如“如何从异步调用返回响应?”之类的问题不同的问题。因为它使用 SUBSCRIBE。据我了解,订阅会告诉它在更改此内容时执行某些操作,因此您不能将代码放入订阅中,因为它只会在更改时运行(这总是为时已晚)。请仅在您了解 Angular、Subscribe 和 HttpClient 的情况下回答。现在我原来的问题:
我有一个问题,我循环遍历一个数组并对数组中的每个项目进行 get 调用。我的问题是所有这些获取请求都是异步发生的,这意味着它们都尝试获取,而之前的获取仍在接收它们的响应。这会导致错误。这是一个粗略的例子:
this.MyArray = [1, 2, 3, 4, 5];
this.MyArray.forEach(element => {
this.httpClient.get('http...')
.subscribe(
(response: any) => {
})
)}
如何让 forEach 循环等待调用响应,然后再转到循环中的下一项?我试着看回复,但我就是不明白:(
【问题讨论】:
-
执行时遇到什么错误?
-
这是一个 promise 可观察的问题。除非您知道您的 observable 将返回什么,否则我看不到解决方案。
标签: angular get rxjs httpclient