【发布时间】:2018-09-12 22:52:13
【问题描述】:
我试图调用两个 observable,第二个的响应我操纵第一个,然后返回一个新的 observable。
return this.http.get(requestUrl)
.map((response: User) => {
sessionManager.currentUser = response;
return this.isFirstTimeUser(response.id);
})
.do((response: any) => {
console.log(response);
sessionManager.currentUser.firstTimeLogin = response === 'true';
return Observable.create(sessionManager.currentUser);
})
.toPromise();
isFirstTimeUser(response.id) 是另一个返回 observable 的函数。
private isFirstTimeUser(userId: number): Observable<any> {
const requestUrl = 'someUrl';
return this.http.get(requestUrl, {responseType: 'text'});
}
我想要做的就是从第一个 http 调用中获取用户对象,在第二个调用中使用用户的 id 发出另一个请求,然后在我从第二个 observable 得到响应后,我更新了一个属性第一个响应并返回更新后的第一个响应。我如何实现这一目标?我应该看什么 rxjs 函数?
【问题讨论】:
-
在你的例子中,你在哪里调用第二个 observable?
-
isFirstTimeUser(response.id) 返回另一个 http Observable。
-
查看我的更新答案
-
你能更好地解释你想要做什么吗?我试图想出答案,但你的描述不清楚。
-
@codeepic 编辑有帮助吗?
标签: angular typescript rxjs httpclient