我有一个函数尝试将 3 个请求链接在一起,如下所示:
showProfileDetails() {
this.getUserInfo(this.currentUser.id).pipe(
mergeMap(e =>
this.getAccounts(this.currentUser.id)
),
mergeMap(e =>
this.getPayments(this.currentUser.id)
)
).subscribe(data =>
console.log('first attempt on observables: ', data)
)
}
我想要做的是同步检索每次调用的数据并将其存储在一个变量中,以便我可以在 DOM 中渲染数据。
但是我得到的只是上次调用的数据,顺便说一句,该调用返回一个错误,如何在不停止此进程的情况下处理此错误?提前致谢,我是 Angular 的新手。
最佳答案
您可以使用 forkjoin 来处理多个 http 请求,就像使用 RxJs 一样:
import { Observable } from 'rxjs/Rx';
import 'rxjs/add/observable/forkJoin';
getVehicles(): Observable<any> {
const user = this.http.get(USER_ENDPOINT).map(res => res.json());
const account = this.http.get(ACCOUNT_ENDPOINT).map(res => res.json());
const payment = this.http.get(PAYMENT_ENDPOINT).map(res => res.json());
return Observable.forkJoin([user, account, payment])
.map(responses => {
// responses[0] => user
// responses[1] => account
// responses[2] => payment
});
}
关于javascript - 如何在 Angular 6 中处理多个 http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51738353/