如何从异步函数获取返回值?

时间:2019-03-12 21:45:47

标签: javascript express async-await

编辑:有些人在建议的答案中将此问题标记为重复,甚至很难回答,不清楚我的问题的答案是什么。

答案是,为了使用等待值的实际值,必须在Async函数内部使用/读取它。那是关键。

问题:

我有这个异步函数,等待结果然后返回:

async function getLoggedInUser() {
  let loggedInUser
  try {
    await axios
      .get(`/api/user_data`)
      .then(res => {
        if (res.data) {
          loggedInUser = res.data
          return loggedInUser
        }
        // nothing came back
        console.error('no users on the res to make ajax and populate choicesjs')
      })
      .catch(err => {
        console.error('no users found', err);
      });
  } catch (e) {
    console.error(e);
  }
  // genresMultiOptions.setValue(loggedInUser.username.genres);
}

export default getLoggedInUser

但是,当我尝试从另一侧获得结果时,我得到了希望。我什至尝试添加另一个异步等待函数来接收它,但仍然得到了保证。我永远无法从异步函数之外获取实际值。

const getUserData = async () => await getLoggedInUser()
const x = getUserData()

0 个答案:

没有答案