bro*_*sej 0 javascript observable rxjs typescript angular
我有一个函数试图将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)
)
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是同步地从每个调用中检索数据并将其存储在变量中,这样我就可以在DOM中呈现数据.
但我得到的只是上次调用的数据,btw返回错误,如何在不停止此过程的情况下处理此错误?在此先感谢,我是Angular的新手.
小智 6
您可以使用forkjoin以这种方式使用RxJs处理多个http请求:
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
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |