首页 > 解决方案 > 如何告诉 js 等待完成所有 fetch 命令然后继续执行全局代码?

问题描述

我需要从 json api 分配值。但是由于 fetch 是异步的,所以在执行了一些 js 之后就完成了。那么如何告诉代码等待获取完成并“加载”数据,然后再继续执行代码呢?

我已经尝试在“.then”和“=>”选项中添加代码,这很有效,但会破坏大部分后续代码。在尝试了来自各种 stackoverflow 和其他网站的数十条建议之后,我仍然完全迷失了方向。

var latitude = 0;
var longitude = 0;
var city = "";

fetch("http://ip-api.com/json/?fields=lat,lon,city").then(function (response) {
    return response.json();
}).then(function (response) {
    latitude = response.lat;
    longitude = response.lon;
    city = response.city;
});

var center = SMap.Coords.fromWGS84(latitude, longitude);
...

在继续执行其他代码之前,我需要先在此函数中执行所有内容(将 json 数据分配给我的全局变量)。

标签: javascriptasynchronousfetch

解决方案


推荐阅读