【发布时间】:2018-11-29 02:45:15
【问题描述】:
我正在尝试设置一个 RxJs 配方来执行一些步骤,并根据一些订阅的结果有条件地执行操作。
伪代码为:
if (trySocialSign() succeeds) {
if (tryGetUserFromDatabase() succeeds) {
do.some.stuff
return
} else {
do.other.stuff
}
}
现在我有这个丑陋的功能,但我想知道是否有一种更漂亮的方式使用管道和地图以及其他 rxjs 运算符能够以更惯用的方式实现相同的效果,同时减少嵌套。有人可以帮我吗?
this.auth.getCurrentUserAsync().subscribe(
(u: EasyAuthUser) => {
this.currentUser = u;
this.users.getUser().subscribe(
(user: User) => {
this.onExistingUserSignIn.emit(user);
},
(err: HttpErrorResponse) => {
if (redirected) {
this.onSignIn.emit(u);
}
}
);
},
(err: HttpErrorResponse) => {this.handleHttpError(err)}
)
【问题讨论】:
标签: rxjs observable angular6