Как вернуть результат метода представления Solidity из функции JavaScript? - PullRequest
1 голос
/ 02 ноября 2019

Я хочу определить функцию просмотра результата умного контракта в web3js 1.x

Предположим, у нас есть функция просмотра getName(uint code) и мы хотим получить имя человека, имеющего свой код. Поэтому мы пишем:

contract.methods.getName(code).call(option)
  .then(...)
  .catch(...);

Мы хотим определить функцию, которая будет возвращать имя результата и что-то с ним делать.

Как мы можем связать вызов определенной функции и метода?

Например:

async function name(code) {
  contract.methods.getName(code).call(option)
    .then(...)
    .catch(...);
  return ???
}

for (let i = 0; i <= 10; i++) {
  let x = name(i);
  // Do something with x, for example:
  alert(x); 
}

PS: я знаю, что результат доступен внутри .then тела, но я хочу получить к нему доступ внутри области действия name и вернуть его из функции.

1 Ответ

2 голосов
/ 03 ноября 2019

Вы уже используете async, поэтому вы можете просто использовать await

var result = await contract.methods.getName(code).call(option)
...