首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SCXML中聚合本地事件

在SCXML中聚合本地事件
EN

Stack Overflow用户
提问于 2015-06-16 15:15:54
回答 1查看 126关注 0票数 0

我的状态机在每次创建某个请求事件时都有一个自循环。我想根据键将这些事件存储在本地上下文列表中,并且每次执行这个self循环时,都会将一个元素附加到列表中。然后,在某个期满周期(例如1小时)之后,将该列表添加到SCXML的全局上下文中。我如何才能做到这一点?

基本上,我希望在触发特定操作之前聚合请求。

代码语言:javascript
复制
  <state id="S02" label="REQUEST CREATED">
        <onentry>
            <action:trigger id="ACC1" name="EXPIRY_EVENT_expiry.sm00007" />
        </onentry>
        <transition event="expiry.sm00007" target="S03">
            <action:trigger id="ACC2" name="TO_DO_SOMETHING" />
            // add the local event list to global context
        </transition>
     <transition event=reqCreated" target="S02" >
      // keep adding the event to local context like appending to list
      </transition>
  </state>
EN

回答 1

Stack Overflow用户

发布于 2015-06-17 03:28:26

在SCXML规范中,所有的数据模型变量都是全局的,所以没有真正的“局部”上下文。但是您可以使用键来索引JavaScript对象。类似于:

代码语言:javascript
复制
  <datamodel>
    <data id="globalEventList"/>
    <data id="localEventListMap" expr="{}"/>
    <data id="localKey" expr="'foo'"/>
  </datemodel>
  <state id="init">
    <onentry>
      <script>
        localEventListMap[localKey] = [];
      </script>
    </onentry>
    <transition target="S02"/>
  </state>
  <state id="S02" label="REQUEST CREATED">
        <onentry>
            <action:trigger id="ACC1" name="EXPIRY_EVENT_expiry.sm00007" />
        </onentry>
        <transition event="expiry.sm00007" target="S03">
            <action:trigger id="ACC2" name="TO_DO_SOMETHING" />
            <script>
              // add the local event list to global context
              globalEventList = localEventListMap[key];
            </script>
        </transition>
     <transition event="reqCreated" target="S02" >
        <script>
          // keep adding the event to local context like appending to list
          localEventListMap[key].push(_event);
        </script>
      </transition>
  </state>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30861089

复制
相关文章

相似问题

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