3

我有一个返回多个值的函数。我希望从 Web3js 访问这些。

function testReturnBet(uint index) constant returns (address player, 
                                                     uint tokensPlaced, 
                                                     uint8[4] numbers,
                                                     uint ratioIndex,
                                                     uint timestamp,
                                                     uint rollIndex,
                                                     uint winAmount) {
        bet outBet = bets[index];
        return (outBet.player,
                outBet.tokensPlaced, 
                outBet.numbers, 
                outBet.ratioIndex, 
                outBet.timestamp, 
                outBet.rollIndex, 
                outBet.winAmount);
    }
4

2 回答 2

5

您将获得一个包含 7 个值 (0-6) 的返回值数组。第三个应该是一个有 4 个值的数组。

在 Truffle 风格中,它看起来像:

contract.testReturnBet(index).then(function(response) {
  console.log(response); // should be an array
});
于 2017-03-26T12:55:32.227 回答
0

这个问题与Ethereum.SE 上的这个问题相同。

正如那里所建议的那样,请关注此博客以获取完整详细信息:https ://blockheroes.dev/js-read-multiple-returned-values-solidity/

您的解决方案应该如下:

const result = await contractInstance.yourFunction(param);
const {0: variable_1, 1: variable_2} = result;
于 2021-07-26T09:11:55.393 回答