【发布时间】:2019-05-15 00:30:18
【问题描述】:
我需要从 Angular 5 中的服务类进行两次依赖 HTTP 调用并返回一个 Observable,以便我的组件可以订阅它。所以在Service Class函数里面:
- HTTP 调用 1 将返回一些数据,例如
string类型 - 这个
string将被 HTTP 调用 2 用作输入 - HTTP 调用 2 返回,假设是
string[] - 服务类函数的返回类型将是
Observable<string[]>类型
不工作的代码(错误:函数必须返回一个值):
getData(): Observable<string[]> {
this.httpClient.get<string>('service1/getData').subscribe(
dataFromSvc1 => {
return this.httpClient.get<string[]>('service2/getData/' + dataFromSvc1);
},
err => {
return throwError(err);
}
)
}
【问题讨论】:
-
你的意思是异步的吗?
-
不,同步。调用 1 的结果用于调用 2
-
要明确一点……http是异步的。你提交了一个请求......一段时间后它会返回一个响应。您要问的是执行嵌套调用,对吗?
-
要执行嵌套的 http 调用,请使用如下所示的 switchMap:stackoverflow.com/questions/45926836/angular4-nested-http-calls/…
标签: angular rxjs angular-httpclient