【问题标题】:How to return value from promise?如何从承诺中返回价值?
【发布时间】:2019-01-27 23:07:02
【问题描述】:

我有一个返回承诺的承诺。

目前我的代码是:

async isRepo() {
  return await this.gitPromise.checkIsRepo();
}

但是我需要返回 promise 的值(true 或 false)才能在其他地方使用函数 isRepo()。

即使使用“then”,我也没有成功返回承诺的值,而不是承诺本身。

例如,我需要它来做:

if (await isRepo()) {
  // true : todo
} else {
  // false : something else
}

【问题讨论】:

  • 不,你不能返回这个值——当你调用函数时它还不存在。你只能返回你已经做过的承诺 - 然后在你的 if 条件下返回 await 它 - 你已经做了并且应该可以工作。
  • 除非 if 语句在异步函数中,否则 await 在 if 语句中不起作用。
  • 顺便说一句,drop the pointless return await。只需isRepo() { return this.gitPromise.checkIsRepo(); }
  • 你为什么add the await in an edit?你有问题吗?什么错误,什么不工作?

标签: javascript typescript promise


【解决方案1】:

你可以这样做:

isRepo() {
    return gitPromise().checkIsRepo();
  }

在另一个函数中:

async myFunction() {
   if (await isRepo()) {
     // do my stuffs
   else {
     // something else
   } 
}

【讨论】:

    猜你喜欢
    • 2022-10-24
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 2018-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-22
    相关资源
    最近更新 更多