【发布时间】:2020-08-09 16:43:40
【问题描述】:
我对 HTTP 请求使用 observable 我想将其作为同步调用,因为我是 rxjs 的新手。下面的代码用于进行多次调用,所以在所有调用完成后,我只需要调用驱动方法。我参考了很多链接,但我无法理解请帮助我。
服务调用接口:
public createHttpRequests(
method: string,
url: string,
payload?: any,
params?: any,
): Observable<any> {
switch ((method).toLowerCase()) {
case 'get': return this.createHttpGet(url, params);
case 'post': return this.createHttpPost(url, payload);
default: return this.http.get('');
}
}
我的服务电话如下:
public ngOnInit(): void {
this.serviceCall.createHttpRequests('get', this.someService.getUserList, {}, {}).pipe(
map((result: Iuserlist) => {
if (result.body.statusCode === 200) {
} else {
}
}),
).subscribe();
this.serviceCall.createHttpRequests('get', this.someService.getsomeData, {}, {}).pipe(
map((result: Isomedatas) => {
if (result.body.statusCode === 200) {
} else {
}
}),
).subscribe();
//This method should call after the above api completion
this.getDriverDetails();
}
【问题讨论】:
-
不要进行同步网络请求。异步的不只是 observables,还有下划线的浏览器 HTTP 请求。我知道 RX 可能有点让人不知所措,但您不必使用 RX。基于 Promise 的异步请求现在具有 async await 语法糖,易于理解和学习。
标签: angular rxjs observable angular8 angular9