【问题标题】:Receiving Promise <Pending> instead of value接收 Promise <Pending> 而不是 value
【发布时间】:2019-05-10 21:23:22
【问题描述】:

我有一个对象,当我打印时它返回Promise &lt;Pending&gt;(我检查了getRateable 的类型,它是对象)

getRateable = getRateableEntitiesTx(tx, hashtagList);

我无法通过这个访问值:

getRateableEntitiesTx(tx, hashtagList).then((res) => {return res})

如果是Promise,为什么它没有正确返回res

提前感谢您的帮助

【问题讨论】:

  • 所有 Promise 实现都通过.then() 方法传递它们的价值。 一些 实现允许“同步检查”,但它是非标准功能。即使在那些提供同步检查的实现中,promise 很可能仍然在创建它们的事件线程中处于未决状态。这种行为是不确定的,因为它没有在任何地方指定,并且在任何情况下都不应依赖。

标签: node.js object promise return es6-promise


【解决方案1】:

您无法从异步函数返回值,因为该函数在接收到值之前返回。这就是为什么我们有承诺。您需要使用 then() 回调中的值:

getRateableEntitiesTx(tx, hashtagList)
.then((rateable) => {
  // use rateable here
  console.log(rateable)
 })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 2017-09-10
    • 2022-01-09
    • 2020-11-17
    相关资源
    最近更新 更多