从 javascript 调用 solidity 函数得到了 [object promise]?
Call solidity function from javascript got [object promise]?
我在合约中有一个非常简单的 solidity 函数 MyContract
。
function getCount() view public returns (uint) {
return myArray.length;
}
下面的 javascript 使用 web3
打印 [object Promise]
而不是计数?
MyContract.deployed().then(i => {
var count = i.getCount.call();
console.log(count); // print [object Promise]
})
根据您的代码:
MyContract.deployed().then(i => {
var count = i.getCount.call();
console.log(count); // print [object Promise]
})
MyContract.deployed() 会将合约部署到 eth 网络。矿工验证并将合约代码添加到区块链需要时间。成功完成此过程后,then() 将调用。
来到i是部署的合约对象,使用i variable
可以访问合约。
i.getCount.call().then(val =>{ console.log("Value")}) //instance.getCount().call will returns promise. So
call() 是异步方法,即它不会等待完成该步骤。当您当时获得数据时, then() 将调用。
或者简单地调用 instance.getCount()
你的执行将暂停,直到你得到结果。
我的选择是使用 then()
我在合约中有一个非常简单的 solidity 函数 MyContract
。
function getCount() view public returns (uint) {
return myArray.length;
}
下面的 javascript 使用 web3
打印 [object Promise]
而不是计数?
MyContract.deployed().then(i => {
var count = i.getCount.call();
console.log(count); // print [object Promise]
})
根据您的代码:
MyContract.deployed().then(i => {
var count = i.getCount.call();
console.log(count); // print [object Promise]
})
MyContract.deployed() 会将合约部署到 eth 网络。矿工验证并将合约代码添加到区块链需要时间。成功完成此过程后,then() 将调用。
来到i是部署的合约对象,使用i variable
可以访问合约。
i.getCount.call().then(val =>{ console.log("Value")}) //instance.getCount().call will returns promise. So
call() 是异步方法,即它不会等待完成该步骤。当您当时获得数据时, then() 将调用。
或者简单地调用 instance.getCount()
你的执行将暂停,直到你得到结果。
我的选择是使用 then()