You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Web3中直接调用getBlock().size返回undefined的问题咨询

Web3.js中getBlock调用后直接取size返回undefined的问题

问题核心在于你对Promise与await的执行顺序理解有误:

  • real.eth.getBlock()方法返回的是Promise对象,并非直接的区块数据。
  • 你Line3的写法await real.eth.getBlock(16532022).size,实际是先访问了Promise对象的size属性(Promise本身没有这个属性,因此得到undefined),再对这个undefined执行await,最终结果自然是undefined。
  • 而Line1的写法是先通过await等待Promise完成解析,拿到真正的区块对象后再访问size属性,所以能正常获取值。

如果想要链式写法,需要给await的目标加括号,确保先等待Promise解析为区块对象,再取属性:

console.log( (await real.eth.getBlock(16532022)).size );

或者保持你Line1的写法,先存储区块对象再取属性,可读性会更高:

const block = await real.eth.getBlock(16532022);
console.log(block.size);

内容的提问来源于stack exchange,提问作者Brijesh Roy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 04:26:55