Web3js

web3.eth.getBlock(’latest’) 在塊中沒有給出任何對象!

  • September 27, 2021

我正在嘗試獲取最後一個區塊中 rinkeby 測試網中的交易數量

我寫了以下程式碼

var Web3 = require('web3');

const Project_ID_Infura = 'write your own Infura ID';

const apiKey = 'https://rinkeby.infura.io/v3/' + Project_ID_Infura;

const web3 = new Web3(new Web3.providers.HttpProvider(apiKey));

var block = web3.eth.getBlock('latest');

console.log(Object.values(block));

如您所見,它是空的!我想得到這個的交易欄位block。我該怎麼做?

每次使用 web3 庫的時候好像都有變化。在撰寫本文時。看來塊變數是一個承諾!

承諾是什麼意思?JavaScript 中的 Promise 表示已經發生的程序,可以將其與回調函式連結起來,如此處所述

因此,似乎獲取最後一個區塊中有多少交易的唯一可行方法是將下面的行添加到上面的程式碼中。

block.then(x=> {return x.transactions.length});

這給了我想要的回報,但我無法將其儲存為變數。我仍在學習如何做到這一點,但想分享一半的解決方案。

注意:這裡有一個很好的解釋 JavaScript 承諾的影片

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