如何从async / await函数正确返回结果?

时间:2019-04-27 00:52:22

标签: javascript reactjs async-await

我使用async / await函数已经有几个月了,并且我所有的代码都可以使用,但是,我不完全理解它,可以使用一些智慧的话。

在下面的代码中,我有一个异步函数,我的问题是...为什么它返回承诺而不是我期望的值?更重要的是,获得我想要的价值的正确方法是什么?

  getName = async () => {
    const request = await fetch(apiUrl)
    const data = await request.json()

    return data.response.name
  }

我稍后调用该函数

const name = getName()

但是name是一个诺言,而不是名称。

我已经看了很多遍了,而且它永远不会消失。我希望使用我自己的示例,如果有人可以向我解释它,以便我完全理解,它最终会坚持下去。

EDIT -为回复@Paulpro,我已将问题更新至下面...

假设异步功能还可以,问题是如何存储该值。

const name = getName()

'name'现在是一个承诺,所以我通常会做这样的事情...

getName().then(name => setName(name))

但是如何使const name ===返回的名称?

1 个答案:

答案 0 :(得分:2)

  

如何使const名称===返回的名称?

使用if (count($studentLocations->intersect($preceptorLocations))>0) { //Your code here }

这意味着您必须在const name = await getName()函数中使用它。

所以您使用的方法是:

async

最有可能是最好的方式,但这实际上取决于其余的代码。

我的意思是你可以这样做:

getName().then(name => setName(name))

当(以及如果)两个异步请求都结束时,您的let name; getName = async () => { const request = await fetch(apiUrl) const data = await request.json() name = data.response.name; } 变量将得到结果。但是不能保证时间。根据应用程序的不同,如果您像这样初始化变量,可能会很好:

name