Contract-Development
web3從函式返回接收數據的最佳方式?
現在我正在嘗試開發我的第一個 Dapp(使用 Metamask 外掛)。一切都會好起來的,但我無法得到一件事:是否可以使用 Web3(不是 JS VM!)從函式接收返回
例如,我有一個這樣的簡單契約:
pragma solidity ^0.4.0; contract test { int32 data = 123; function getData() returns (int32) { return data; } }
當我
getData()
使用 JS 虛擬機呼叫時,它工作正常:但是選擇
Inject web3
(元遮罩)它返回有關新事務的資訊,而不是123
我也無法從 JS 控制台(Metamask)接收任何數據:
對於這個問題,最簡單的是將
getData
常量設為:
function getData() constant returns (int32)
另一種選擇是使用事件: 如何在呼叫帶參數的函式時獲取返回值?
您是否嘗試過非同步使用呼叫函式:
contract.getData.call().then(function(result) { console.log(result); });