从 web3js 中的 solidity 函数访问多个 return 值(a、b、c)

Access multiple return values (a, b, c) from solidity function in web3js

我有一个 returns 多个值的函数。我希望从 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);
    }

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

在松露风格中,它看起来像:

contract.testReturnBet(index).then(function(response) {
  console.log(response); // should be an array
});

此题与this one on 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;