首页 > 解决方案 > 如何从javascript中的函数返回值

问题描述

我正在调用一个使用 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);
        }
    })()
}

标签: javascriptnode.jsfunctionasync-await

解决方案


您可以删除立即调用的函数表达式,而不是return函数。在 try 块中 return getInfo

对于此示例somefunction,返回一个承诺,该承诺将在 3 秒后解决。由于async将返回一个承诺,因此您可以在 athen

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)

})


推荐阅读