首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在订阅条件下执行内部代码

在订阅条件下执行内部代码
EN

Stack Overflow用户
提问于 2016-12-02 07:52:15
回答 1查看 5.1K关注 0票数 0

我的angular2应用程序中有可观察到的数据。该数据具有两个属性。

代码语言:javascript
运行
复制
 {isFetching: false, user: {userID: 1, firstName: "john", lastName: "public"} }.

当从服务器检索数据时,isFetching标志为true,而用户对象为null。在我的组件中,当可观测用户对象为null时,我需要通过userID获取其他一些数据,这些数据位于可观测的object.Initially上。在我的代码中,在执行其他操作之前,我必须检查用户是否为null。下面的代码可以工作,但我认为必须有比在订阅块中有if条件更好的方法。

代码语言:javascript
运行
复制
this.store.select<UserProfileState>('user')
        .subscribe(user => {
            if (!user.isFetching) {
              this.store.dispatch(this.informationPanelActions.loadInformationPanel(user.user.clientID, user.user.userID));
            }
        });

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-02 08:00:48

在使用可观察到的功能时,可以使用筛选器:

代码语言:javascript
运行
复制
this.store.select<UserProfileState>('user')
    .filter(user => !user.isFetching)
    .subscribe(user => {
        this.store.dispatch(this.informationPanelActions.loadInformationPanel(user.user.clientID, user.user.userID));
    });
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40927241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档