首页 > 解决方案 > 在异步函数中使用 props 变量

问题描述

我在 vue.js 组件中接收到 web3 的值。我之前在同一组件的代码中成功地使用了这个变量。但是,在尝试在异步函数中使用它时,我在所述变量上收到一个未定义的错误。我不应该像下面这样使用它,还是我错过了什么?(blockNum 在我的代码前面被分配了一个值。)

 props: ['web3']

 async function getTimestamp () {
     const block = await this.web3.eth.getBlock(blockNum)
     const ts = await this.web3.eth.getBlock(block).timestamp
     return ts
 }
 console.log(getTimestamp())  

标签: javascriptvue.jsasync-await

解决方案


由于getTimestamp是一个异步函数,它返回一个承诺而不是实际值。因此,在控制台记录它之前,您必须等待承诺解决。

async function getTimestamp () {
 const block = await this.web3.eth.getBlock(blockNum)
 const ts = await this.web3.eth.getBlock(block).timestamp
 return ts
}

getTimestamp().then(ts => {
    console.log(ts)
}

推荐阅读