我想先运行身份验证http get函数,一旦它成功,然后运行另一个函数,然后返回可观察的返回,这样它就可以订阅并继续使用其他方法。
return new Observable(observer => {
this.api
.login(username, password)
.subscribe(
data => {
this.data = this.dataParse(data);
observer.next(this.data);
observer.complete();
});
// run another http.get to get user profile, before sending back Observable
});我不知道如何运行另一个http.get,然后返回可观察的。
我可以在.subscribe()方法中运行另一个函数,但是它不会与当前可观察到的
发布于 2016-02-20 06:02:41
虽然我还没有尝试,但是您需要通过管道将登录响应传递到一个操作符链。类似于这样的东西:
return this.api
.login(username, password)
.map((res:Response) => res.json())
.mergeMap(data=> $http.get(data.id));您不需要创建一个新的可观察的。
https://stackoverflow.com/questions/35519551
复制相似问题