在由node.js编写的超级账本结构中调用自函数

时间:2018-07-24 10:28:46

标签: hyperledger-fabric

在超级账本结构中,当我通过node.js编写chaincode时。我如何通过invoke调用anthor函数?

const shim = require('fabric-shim');
    var Chaincode = class {
        async Init(stub) {}
        async Invoke(stub) {}
        async func1(stub) {
            // how to invoke `func2` here?
        }
        async func2(stub) {}
    }

我想在func2中调用func1

2 个答案:

答案 0 :(得分:0)

V1 :基于官方的nodeJS fabcar链码示例(link),这应该可以工作:

var Chaincode = class {
        async Invoke(){
            let method = this["func1"];
            await method(stub,this);
            //...
        }

        async func1(stub,methods) {
            await methods.func2(stub);
            //your code
        }

        async func2(stub) { 
            //your code 
        }
    }

V2 :普通Javascript类

var Chaincode = class{

    constructor(){

    }

    async func1(){
        console.log("FUNC 1");
        this.func2();
    }

    async func2(){
        console.log("FUNC 2");
    }
}

答案 1 :(得分:0)

我知道问这个问题已经很久了,但是对于那些面临相同问题的人,这就是我的解决方法:

var Chaincode = class {
        constructor() {    
            this.func1 = this.func1.bind(this)
        }
        async Init(stub) {}
        async Invoke(stub) {}
        async func1(stub) {
            // how to invoke `func2` here?
            this.func2(stub)
        }
        async func2(stub) {}
    }