Возникли проблемы с подключением web3 основной сети Infura и получением информации

Я просматривал учебник от DappUniversity о Web3 ... во вступительном видео я успешно завершил все этапы, но когда я добрался до получения информации о балансе учетной записи из основной сети (я выбрал случайную учетную запись из Etherscan.io), это не извлекает его.

Я получаю подобную ошибку, когда смотрю на баланс сам по себе ---|> web3.eth.getBalance(address, (err, bal) => { balance = bal })ответ есть 'undefined'и не возвращает значение учетной записи в Wei...

Я пытался прочитать ошибку баланса через --|>web3.eth.getBalance(address)

который возвращает следующее: >>>

> web3.eth.getBalance(address)
Promise {
  <pending>,
  domain:
   Domain {
     domain: null,
     _events: { error: [Function: debugDomainError] },
     _eventsCount: 1,
     _maxListeners: undefined,
     members: [] } }
> (node:9060) UnhandledPromiseRejectionWarning: Error: Invalid JSON RPC response: ""
    at Object.InvalidResponse (C:\Users\User\node_modules\web3-core-helpers\src\errors.js:42:16)
    at XMLHttpRequest.request.onreadystatechange (C:\Users\User\node_modules\web3-providers-http\src\index.js:87:32)
    at XMLHttpRequestEventTarget.dispatchEvent (C:\Users\User\node_modules\xhr2-cookies\dist\xml-http-request-event-target.js:34:22)
    at XMLHttpRequest._setReadyState (C:\Users\User\node_modules\xhr2-cookies\dist\xml-http-request.js:208:14)
    at XMLHttpRequest._onHttpResponseEnd (C:\Users\User\node_modules\xhr2-cookies\dist\xml-http-request.js:318:14)
    at IncomingMessage.<anonymous> (C:\Users\User\node_modules\xhr2-cookies\dist\xml-http-request.js:289:61)
    at emitNone (events.js:111:20)
    at IncomingMessage.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickDomainCallback (internal/process/next_tick.js:218:9)
(node:9060) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:9060) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

что я могу сделать, чтобы решить эту проблему!

Ответы (1)

web3.eth.getBalance(address) возвращает обещание, которое либо вернет ошибку, либо баланс только после завершения транзакции.

function getBalance(){ var balance; web3.eth.getBalance(address, (err, bal) => { balance = bal }) return balance; }

в приведенном выше случае будет возвращено значение undefined, поскольку функция уже вернула баланс до того, как баланс был получен и присвоен балансу.

async function getBalance(){ var balance; await web3.eth.getBalance(address, (err, bal) => { balance = bal }) return balance; }

Что касается ошибки. UnhandledPromiseRejectionWarning: Error: Invalid JSON RPC response: ""Возникает ли она при вызове getBalance()? Возможно, было бы полезно опубликовать более подробный код, чтобы лучше устранить эту ошибку.