gpt4 book ai didi

javascript - 如果网络离线,使用 if 语句跳过获取

转载 作者:行者123 更新时间:2023-12-01 00:45:44 25 4
gpt4 key购买 nike

我设置了一个从第三方 API 获取位置信息的 fetch。

现在,当我离线时,我可以在控制台中看到错误,因为请求失败。连接离线时如何跳过 fetch 部分?

我尝试过将 if/else 语句与 window.navigator.online 一起使用,但它只读取 else 部分。

getMarkerInfo(marker) {
var self = this;
var clientId = "hidden";
var clientSecret = "hidden";
var url = "https://api.foursquare.com/v2/venues/search?client_id=" +
clientId + "&client_secret=" + clientSecret + "&v=20130815&ll=" +
marker.getPosition().lat() + "," + marker.getPosition().lng() + "&limit=1";

// If connection online then fetch data else inform
if (window.navigator.online != true) {
console.log("false");
} else {
console.log("true");
fetch(url)
.then(
function(response) {
if (response.status !== 200) {
self.state.infowindow.setContent("Sorry cannot find data");
return;
}

// get name and location in info map
response.json().then(function(data) {
var location_data = data.response.venues[0];
var name = location_data.name;
var address = location_data.location.address;
self.state.infowindow.setContent('<b>' + name + '</b>' + '<br>' + address);
});
}
)
.catch(function(err) {
self.state.infowindow.setContent("Sorry cannot find data");
});
}

}

net::ERR_INTERNET_DISCONNECTED

最佳答案

window.navigator.onLine 中应该有一个大写的“L”。

所以 if 语句应该是:

if (window.navigator.online != true) {
console.log("No connection!")
} else {
// fetch()...
}

关于javascript - 如果网络离线,使用 if 语句跳过获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57383593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com