【问题标题】:How to return value from a function in javascript [duplicate]如何从javascript中的函数返回值[重复]
【发布时间】:2019-03-12 02:04:11
【问题描述】:

我正在调用一个使用 async/await 的函数。此函数将在 const getinfo

中获取一个字符串

如何在调用下面的函数时返回这个“getinfo”字符串?

oneFunction("hello")

oneFunction("hello")



function oneFunction(info) {

    (async function () {
        try {

            const getinfo = await somefunction(info)

        } catch (e) {
            console.error(e);
        }
    })()
}

【问题讨论】:

  • 内在的 IIFE 毫无意义。您应该将 oneFunction 设为 async 函数。
  • @Bergi 当我现在看这个例子时,我相信你实际上是对的。在这种情况下,我可以按原样使用 oneFunction。谢谢!

标签: javascript node.js function async-await


【解决方案1】:

您可以删除立即调用的函数表达式,而改为 return 函数。在 try 块内返回 getInfo

对于这个例子,somefunction 正在返回一个承诺,该承诺在 3 秒后解决。由于async 将返回一个承诺,您可以在then 中获取值

function oneFunction(info) {

  async function inner() {
    try {

      const getinfo = await somefunction(info);
      return getinfo;

    } catch (e) {
      console.error(e);
    }
  }

  return inner()
}

function somefunction(val) {
  return new Promise(function(resolve, reject) {
    setTimeout(function() {
      resolve('Value from aysnc ' + val)
    }, 3000);
  })
}

oneFunction("hello").then((data) => {
  console.log(data)

})

【讨论】:

    猜你喜欢
    • 2011-03-23
    • 2015-08-01
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    相关资源
    最近更新 更多