Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将API数据放入全局数组?_Javascript_Html_Arrays_Async Await - Fatal编程技术网

Javascript 如何将API数据放入全局数组?

Javascript 如何将API数据放入全局数组?,javascript,html,arrays,async-await,Javascript,Html,Arrays,Async Await,我正在做一个非常简单的新冠病毒比较器项目,我已经完成了大部分工作,但有一个问题。我想将结果推送到一个名为data的全局数组,但它不起作用,因为在将数据推送到数组时,数据仍在加载。我插入了必要的代码,但不是全部 var data = []; //global array function getData() { fetch(url + countryOne.value) .then(response => response.json()) .then((result) =&g

我正在做一个非常简单的新冠病毒比较器项目,我已经完成了大部分工作,但有一个问题。我想将结果推送到一个名为data的全局数组,但它不起作用,因为在将数据推送到数组时,数据仍在加载。我插入了必要的代码,但不是全部

var data = []; //global array
    function getData() {
 fetch(url + countryOne.value)
 .then(response => response.json())
  .then((result) => {
 var index = result.length - 1;
 var confirmed = result[index].Confirmed;
 textOne.textContent = result[index].CountryCode + " TOTAL CASES : " + confirmed;
 data.push(confirmed); //trying to push data

 
 })
 
    fetch(url + countryTwo.value)
 .then(response => response.json())
 .then((result) => {

 var index = result.length - 1;
 var confirmed = result[index].Confirmed;
 textTwo.textContent = result[index].CountryCode + " TOTAL CASES : " + confirmed;
 data.push(confirmed);
 
 })
 

}

如您所见,我正在获取数据,处理响应,然后将数据推送到一个全局数组中。问题是数据没有被推入数组。我认为我遇到了这个问题,因为数组在加载api中的数据之前就在推送。加载数据后,如何将数据推送到阵列?

也许您需要查看以下结构:

异步函数getData(){ 常量数据=[]; 让resp,jsonArray; resp=await-fetch(url+countryOne.value);jsonArray=await-resp.json(); 设index=jsonArray.length-1,confirm=jsonArray[index]。confirm; textOne.textContent=jsonArray[index].CountryCode+“总病例数:”+已确认; 数据推送(已确认); resp=await-fetch(url+countryTwo.value);jsonArray=await-resp.json(); index=jsonArray.length-1;confirm=jsonArray[index]。已确认; textwoo.textContent=jsonArray[index].CountryCode+“总病例数:”+已确认; 数据推送(已确认); 返回数据; } //变得像 getData()。然后(数据=>{ 控制台日志(数据); }); //或者在另一个异步函数中 异步函数测试(){ const data=wait getData(); 控制台日志(数据); }
test()像这样尝试,
等待
获取并将响应细节推送到
数据

const getData=async()=>{
常量数据=[];
常量f1_data=等待提取(“https://swapi.dev/api/people/1/")
。然后((res)=>res.json());
data.push(f1_data.name);
const f2_data=等待提取(“https://swapi.dev/api/people/2/")
。然后((res)=>res.json());
数据推送(f2_数据名称);
控制台日志(数据);
};

getData()
该提取需要运行
。然后在您将另一个提取放入内部之前
。您能给我一个示例吗?实际上,我会将最后一个
提取
放入
中。然后
函数在其上方,紧跟在
数据之后。推送(确认)。好的,我试试看。您期望的数据只在异步基础上可用。是的,这意味着任何依赖于异步结果的
数据
数组的查询都必须在异步活动之后完成。不起作用,但谢谢什么不起作用<代码>url
国家一级
国家二级
必须正确定义。我真的不知道你的数据是什么样子的,除了你展示的。是的,我已经正确定义了它们,谢谢:)