Javascript 使用fetchapi中的数据

Javascript 使用fetchapi中的数据,javascript,jquery,json,Javascript,Jquery,Json,当我将数据存储为JSON变量时,我通常可以在JS中创建变量,如下所示: var person = {"name":"adam"}; var name = person.name; 当我使用fetchapi加载资源时,我无法以同样的方式从数据中创建变量。我知道数据已经加载,因为我可以在控制台中记录和浏览数据 我目前正试图通过以下方式实现这一点: var person; fetch(url) .then(res =&g

当我将数据存储为JSON变量时,我通常可以在JS中创建变量,如下所示:

var person = {"name":"adam"};
var name = person.name;
当我使用fetchapi加载资源时,我无法以同样的方式从数据中创建变量。我知道数据已经加载,因为我可以在控制台中记录和浏览数据

我目前正试图通过以下方式实现这一点:

  var person;
        fetch(url)
          .then(res => res.json())
          .then(data => person = data)

            var name = person.name
假设url加载与上面相同的数据,我将如何将'name'变量设置为json文件中的'name'字段?

fetch是异步调用,您将在该调用之外分配名称。因此,它将无法按预期工作。 尝试:-

注意:-我已向person全局声明了名称,您可以根据需要更改其范围。但是,在异步调用之后,它将可用。

fetch是异步调用,并且您将在该调用之外分配名称。因此,它将无法按预期工作。 尝试:-


注意:-我已向person全局声明了名称,您可以根据需要更改其范围。但在该异步调用之后,它将可用

,因为其中涉及两个异步步骤,您可以对async await使用以下方法:

异步=>{ const person=await-fetchurl.json; const name=person.name console.log名称; //需要person对象的其他代码
}; 由于涉及两个异步步骤,因此可以对async await使用以下方法:

异步=>{ const person=await-fetchurl.json; const name=person.name console.log名称; //需要person对象的其他代码
};您可以在then函数中执行此操作。在当前具有var name=person.name的空间中,提取和相关承诺尚未执行,因此这些值将是未定义的。您可以在then函数中执行此操作。在当前具有var name=person.name的空间中,提取和相关承诺尚未执行,因此这些值将未定义。
var person, name;
    fetch(url)
      .then(res => res.json())
      .then(data => {
           person = data;
           name = person.name;
       })