Javascript 使用fetchapi中的数据
当我将数据存储为JSON变量时,我通常可以在JS中创建变量,如下所示: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
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;
})