首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在logic.js文件的if语句中检查CTO文件中的枚举

如何在logic.js文件的if语句中检查CTO文件中的枚举
EN

Stack Overflow用户
提问于 2018-08-25 06:12:50
回答 1查看 309关注 0票数 1

如果我在.cto文件中有一个简单的枚举,比如:

代码语言:javascript
复制
enum STATUS {
    o ACTIVE
    o INACTIVE
}

和用户

代码语言:javascript
复制
participant User identified by name{
    o String name
    o STATUS status
}

如何在如下函数中检查状态:

代码语言:javascript
复制
transaction isActive {
    o User user
}

在logic.js文件中,我会有类似这样的代码:

代码语言:javascript
复制
return getParicipantRegistry(NS + '.User'){
    .then(function(userRegistry) {
        var u = userRegistry.get(user.name)
        if (u.isActive == 'ACTIVE')
            //some code
    })

我的情况稍微复杂一些(枚举有6种类型),但我试图简化它,使逻辑保持一致。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-25 14:01:35

尝尝这个。

将事务中的用户更改为关系

代码语言:javascript
复制
transaction isActive{
-->User user
}

现在在logic.js中,您可以获得用户的状态,如下所示

代码语言:javascript
复制
    /**
     * checkStatus
     * @param {org.test.isActive} checkStatus // use your namespace instead of org.test
     * @transaction
     */
    function checkStatus(txParams){
      // txParams are the parameters given when the transaction is submitted
      // you can access user details by txParams.user
      if(txParams.user.status == "ACTIVE"){
        // do something
      }
     // then you can update the user by 
     return getParticipantRegistry(NS+'.User').then(function(userRegistry){
          // or you can also check status directly here and do something
          return userRegistry.update(txParams.user)
      })

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

https://stackoverflow.com/questions/52012315

复制
相关文章

相似问题

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