Web3js

從 web3 使用 getBalance 時收到“未定義”

  • September 21, 2020

我正在嘗試使用以下命令從 Ropsten 網路通過 web3 和節點獲取地址的餘額:

var Test = require('web3')
var url = 'https://ropsten.infura.io/v3/...'
var web3 = new Test(url)
var address = 'A Public Address'
web3.eth.getBalance(address, (err, bal) => {balance = bal})
balance`

結果是:

undefined

它正在工作,突然之間發生了這種情況。

getBalance是非同步的,因此您不能在回調中分配變數並期望該變數之後在同步程式碼中設置。

您可以將任何需要餘額的程式碼移動到 的回調中getBalance,例如:

web3.eth.getBalance(address, (err, bal) => {
 if (err) {
   // Do something with the error
   return console.error(err);
 }

 console.log(bal.toString());
})

您可以在此處閱讀有關(非同步)回調的更多資訊。

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