【发布时间】:2020-08-18 17:54:05
【问题描述】:
我想转换下面的代码sn-p:
this.dataUserSubscription = this.store$.pipe(select(selectUser)).subscribe(
user => {
this.store$.pipe(select(selectUserData, {user}), take(1))
.subscribe(userData => {
if (userData === null) {
this.store$.pipe(select(selectUserManagement, {user}), take(1)).subscribe(
userManagement => {
this.store$.dispatch(saveUserDataToStore({
user,
userManagement
}));
});
}
});
通过避免嵌套订阅。我发现的所有示例都是针对两次订阅的。
this.dataUserSubscription = this.store$.pipe(select(selectUser),
switchMap(user => this.store$.pipe(select(selectUserData, {user}))))
.subscription(userData => {
// logic
})
但这不是我的代码示例的正确解决方案。 为什么是修复多个嵌套订阅的正确步骤?
【问题讨论】:
-
您在这里的多重订阅的用例是什么?根据您可以选择您的 rxjs 运营商。
-
@Tal Ohana 不。没有相关订阅。我需要第二次和最后一次订阅的数据。
-
@GaurangDhorda 我需要调度操作,并且它需要一些不同的数据。但是,当在下拉菜单中更改选择用户时,也应该重新加载这些选择器。这就是为什么我需要嵌套订阅 - aut。刷新。
标签: angular typescript rxjs rxjs-subscriptions