Web3js

SyntaxError: await 僅在 web3js 中的非同步函式和非同步生成器中有效

  • October 15, 2019

下面是我的程式碼片段。我希望等待交易雜湊值,以便我可以返回帶有雜湊值的 Javascript 函式。

但是我在 Firefox 控制台中收到錯誤“SyntaxError:await 僅在非同步函式和非同步生成器中有效”。我在https://cdn.jsdelivr.net/gh/ethereum/web3.js@1.0.0-beta.34/dist/web3.min.js使用web3js 1.0

web3.eth.accounts.signTransaction(tx, privateKey).then(signed => {
 const tran = await web3.eth
   .sendSignedTransaction(signed.rawTransaction)
   .on('confirmation', (confirmationNumber, receipt) => {
     console.log('=> confirmation: ' + confirmationNumber);
   })
   .on('transactionHash', hash => {
     console.log('=> hash');
     console.log(hash);
     //console.log("HASH: ", hash);
     transHash = hash;
   })
   .on('receipt', receipt => {
     console.log('=> reciept');
     console.log(receipt);
   })
   .on('error', console.error);
});

改變這個:

signed => {

對此:

function(signed) {

然後到這個:

async function(signed) {

中間階段只是為您闡明語法的中間步驟。

你也可以這樣做:

async (signed) => {

如果你想使用速記符號。

引用自:https://ethereum.stackexchange.com/questions/70437