[英]How to chain rxjs observable
我来自Angular1,就像链接承诺一样,我希望有类似的行为。
我在某类中有一个方法: -
{.........
doLogin (username, password) {
.......
.......
return this.http.get(api).subscribe(
data => {.....}, //enters here
err => {.....}
}
然后我称这种方法: -
someclass.doLogin(username, password).subscribe(
data => { }, //Not getting called
err => { }
}
正如我上面提到的对上述代码的评论,订阅不会在调用者类中被调用。
有关如何做到这一点的任何建议?
实际上,您返回subscribe
方法的对象。 这是订阅而不是可观察的。 因此,您将无法再次订阅返回的对象。
Observables允许基于可观察的运算符构建数据流链。 这取决于你想做什么。
如果您只是从服务中触发某些内容或设置服务属性,则可以使用do
运算符和catch
运算符来进行错误处理:
doLogin (username, password) {
.......
.......
return this.http.get(api).do(data => {
.....
// Call something imperatively
})
.catch(err => {
.....
// Eventually if you want to throw the original error
// return Observable.throw(err);
});
}
不要忘记包含这些运算符,因为它们不包含在Rxjs的开箱即用中:
import 'rxjs/add/operator/do';
import 'rxjs/add/operator/catch';
或全球(所有运营商):
import 'rxjs/Rx';
查看相关问题:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.