как вернуть значение в функцию вызывающего в асинхронном JavaScript и Web3js - PullRequest
0 голосов
/ 22 марта 2019

в приведенном ниже примере я вижу hash, записанный в консоль из someFunction, однако я не могу вернуть r в callerFunction.Там вывод undefined.Как получить значение h, возвращаемое в callerFunction


async function caller(){
  var val = 10;
  let result = await someFunction(val);
  console.log(result);
}

async function someFunction(val) {
   let r = await contract.methods.updateValue(val).send({from: account})
   .on('transactionHash', function(h){
      console.log(h);
      return h;
   })

   return r; 
}

Я пробовал несколько вариантов ниже:

Вариация 1

async function someFunction(val) {
   return contract.methods.updateValue(val).send({from: account})
   .on('transactionHash', function(h){
      console.log(h);
      return h;
   })

   return r; 
}

Вариация 2

async function someFunction(val) {
   return r = contract.methods.updateValue(val).send({from: account})
   .on('transactionHash', function(h){
      console.log(h);
      return h;
   })
}

Вариация 3

async function someFunction(val) {

   var result;
   let r = await contract.methods.updateValue(val).send({from: account})
   .on('transactionHash', function(h){
      console.log(h);
      result = h;
   })
   return result;
}

и все еще не может заставить его работать ....

...