我有一个连接到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
但是我对此一无所知,谢谢您的帮助。
答案 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