将服务中某个方法的返回值传递给另一个方法

时间:2018-08-08 17:05:17

标签: angular typescript

我有一个连接到2个不同API端点的服务,该服务获取用户的ID和JWT令牌:

false

然后,我需要另一个方法使用id和返回的令牌来使用这些值进行另一个@Injectable() export class UserService { appLogin = 'http://url.for.the.login.api'; //returns id and token userData = 'http://url.for.the.user_info.api'; //returns user info constructor(private http: HttpClient) { } getAll() { return this.http.get<User[]>(`${this.appLogin}`); //gets id and token, can display values in the template like this {{currentUser.id}} } } 请求,如下所示: GET

我有这个:

http://url.for.the.user_info.api/userID?token=token_string

但是我对此一无所知,谢谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您可以使用switchMap函数,如下所示:

return this.http.get<User[]>(`${this.appLogin}` + id + '?token=' + token)
    .pipe(switchMap(userData) => this.http.get<User[]>(`${userData}`))

您可能需要为switchMap添加以下导入语句:

import { switchMap } from 'rxjs/operators';

通过通过switchMap传递原始请求,我们可以创建一个新的Observable