如何从javascript中的函数返回值[重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我正在调用一个使用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);
        }
    })()
}
javascript node.js function async-await
1个回答
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)

})
© www.soinside.com 2019 - 2024. All rights reserved.