Web3 中的 Promise <pending> [重复]

Posted

技术标签:

【中文标题】Web3 中的 Promise <pending> [重复]【英文标题】:Promise <pending> in Web3 [duplicate]Web3 中的 Promise <pending> [重复] 【发布时间】:2021-11-25 07:35:27 【问题描述】:

我需要帮助.. 我正在尝试发出异步请求,但响应是 Promise &lt;pending&gt;

这是我的代码

const getBalance = async (adress) => 
  try 
    let wei = await web3.eth.getBalance(address);
   catch (err) 
    console.error(err);
  
;

let balanceWallet = getBalance(address);
console.log(balanceWallet);

所以当我运行我的代码进行调试时,它返回 Promise &lt;pending&gt; 我不知道我的代码有什么问题

【问题讨论】:

console.log(wei) inside 在你有awaited 承诺之后。或在另一个 async 函数内调用 const balanceWallet = await getBalance(address);(或使用 getBalance(address).then(balanceWallet =&gt; …) 【参考方案1】:

getBalance 是一个异步函数 :) JS 不允许我们在程序顶层使用 async/await 但我们可以使用 then/catch 来获取 promise 结果)

您只需要使用(但在您必须更改 getBalance 函数并在那里返回 promise 之前)

const getBalance = (adress) => web3.eth.getBalance(address);

getBalance(address)
.then(balanceWallet => 
  console.log(balanceWallet)
  // some logic with result
)
.catch(error => /** handle an error **/ )

希望对你有帮助!享受编程!

【讨论】:

好的,我知道了。但我的兴趣是保存价值以供以后使用。例如使用方法 fromWei() 我更新了我的例子,请看这个)

以上是关于Web3 中的 Promise <pending> [重复]的主要内容,如果未能解决你的问题,请参考以下文章

useState 与异步函数返回 Promise <pending>

为啥我的函数返回 Promise <pending> [重复]

异步函数返回 Promise <Pending>

为啥我的异步函数返回 Promise <pending> 而不是一个值?

Promise.all() 返回未定义的 Promise <Pending> 数组,尽管类似的解决方案返回成功的替代方案

等待的 Promise 仍然返回 <pending>