如何尽快获取异步函数中的值?

alfo888_ibg

我正在使用以太坊区块链,但我的问题是 JavaScript(异步、等待函数)。

这里我的代码简化了:

在我的 html

App.addBlockChain(n.username,n.first,n.last,n.email).then(value => {
    **//here I need the hash of my transaction** 
}).catch(error => {
    alert("Errore: " + error );
});  
    

在我的 App.js 文件中

addBlockChain: async(u,n,c,e) => {
  let hash;
  const web3     = new Web3(App.web3Provider);
  const signed  = await web3.eth.accounts.signTransaction(options, account.privateKey);
  const receipt = await web3.eth.sendSignedTransaction(signed.rawTransaction)
    .on('transactionHash', function(hash_returned){
        //I need this hash hash_returned as soon as possible in my html *** 
        hash= hash_returned;
    })
    .on('receipt', function(receipt){... })
    .on('confirmation', function(confirmationNumber, receipt){ ... })
    .on('error', console.error); // If a out of gas error, the second parameter is the receipt.;
  return hash;   //it is returned only when on('confirmation') is terminated

任何示例代码有帮助吗?
非常感谢。

杰里米·蒂尔

欢迎来到异步的奇妙世界......做到这一点的一种方法是:

const hash_returned = await App.addBlockChain(n.username, n.first, n.last, n.email);

并在您的 App 类中:

addBlockChain: async(u, n, c, e) => {

    const web3 = new Web3(App.web3Provider);
    const signed = await web3.eth.accounts.signTransaction(options, account.privateKey);

    return new Promise(resolve => { // addBlockChain must return a Promise, so it can be "await"ed

        web3.eth.sendSignedTransaction(signed.rawTransaction)
            .on('transactionHash', function(hash_returned) {
                resolve(hash_returned); // now that you have hash_returned, you can return it by resolving the Promise with it
            })
            
            // or more simply (equivalent) :
            // .on('transactionHash', resolve)
    })
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在非异步函数中获取异步操作的值?

如何访问异步获取函数的值?

如何获取异步值并传递给函数?

如何从异步函数中获取价值?

如何从异步函数中返回值

如何使用异步函数异步侦听 Firestore 中的值?

如何忽略异步块中异步函数的返回值?

如何从异步等待函数中获取 Promise<Array[]> 的返回值?

如何从异步函数到React Native中的变量获取返回值?

之后如何在异步函数上调用后如何获取异步函数的返回值

如何获取异步函数以返回值而不是诺言?

如何导出从异步函数获取其值的变量

如何获取返回承诺的异步函数的返回值

如何及时获取typescript异步函数的返回值

如何在另一个文件中调用异步 javascript 函数的 html 文件中获取返回值?

如何在反应中从异步函数中检索值?

从异步函数中获取变量

如何获取打字稿中异步函数的返回类型?

如何等待异步函数中的获取响应?

如何使用Meteor在函数中获取异步数据

如何从异步存储 getData 函数中获取值?

如何尽快获取 Outlook DistributionList 的成员?

如何在异步等待函数中返回值?

如何从 node.js 中的异步函数返回值

Swift:如何在异步urlsession函数中返回值?

如何将值传递给JS中的异步函数

如何从React Native中的异步JS函数返回变量的值

如何 module.export 在异步函数中定义的值?

如何从 Angular 的异步输入中获取“就绪”值