首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >事件发布与订阅在随需应变环境中的应用

事件发布与订阅在随需应变环境中的应用
EN

Stack Overflow用户
提问于 2018-07-25 04:52:53
回答 1查看 51关注 0票数 1

我在SoftwareViewModel Constuctor中订阅了一些事件,我正考虑在单独的模块中移动这个特定的视图和视图模型,并使其成为按需

但是,为了使事件发布和辅助工作,需要在应用程序加载时加载该SoftwareViewModel,即为了使SoftwareViewMOdel的填充工作。

那么,事件发布和参与是如何在按需视图模型的概念中工作的。

它是否可以做我所想的,因为SoftwareViewModel的行为取决于我们在应用程序中登录时加载的设置。

代码语言:javascript
运行
复制
**//Want to make this viewmodel ON DEMAND**
public SoftwareViewModel()
        {
        **//Event that is going to subscribed**
             SubscriptionToken subscriptionValidate = this.eventAggregator.GetEvent<PubSubEvent<IValidate>>().Subscribe(i =>
            {
               //CODE HERE
            });
        }

关于按需应变的一些解释: OnDemand I指的是今天我有两个选项卡1和2。我希望我的选项卡-2的东西应该加载当我点击标签2,即SoftwareViewModel OnDemand。

但是我的Tab -1有一些设置可以在SoftwareViewModel上生效,即选项卡- 2。为此,我使用事件订阅和发布来共享表1&2中的数据。

但我想做所有的点击选项卡-2。

问:根据我的研究,是否可以按需制作SoftwareViewModel,即按需提供活动公开和注册服务,因为根据我的研究,只有在注册订阅时才能出版。

如果需要更多的描述,请告诉我。

EN

回答 1

Stack Overflow用户

发布于 2018-07-25 05:27:24

您的理解是正确的;典型的pub/sub应用程序中的订阅只有在订阅建立后才会接收发布的事件。

这就是为什么pub/sub基本上是,而不是--视图(模型)接收数据的唯一方式。

为了使它更清楚,让我们从第二个用例开始。首先输入tab-2tab-1从未被创建过。那么你是如何得到数据的呢?tab-2不仅没有在正确的时间订阅,它所寻找的事件也从未发布过!

此外,在第三种情况下,假设tab-1实际上是一个不同的过程。tab-2可能对在其进程启动之前发生的事件感兴趣!

对于所有用例,解决方案是相同的;视图(模型)(这里是tab-2)必须能够查询系统的当前状态。“去取,然后订阅剩下的。”查询和响应可以通过您的pub/子系统(构建了这个子系统,这是一项相当大的工作),也可以通过其他方法进行。

TL;DR:您不能只依赖简单的pub/sub来获取您的初始数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51511033

复制
相关文章

相似问题

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