有没有办法通过 Angular 2+ 中的内置方法检测 ERR_INTERNET_DISCONNECTED

Ave*_*Joe 10 javascript typescript angular

有没有办法通过 Angular 2+ 中的内置方法检测 ERR_INTERNET_DISCONNECTED 以便我可以警告用户?或者也许通过JS?

Gov*_*Rai 13

不确定 Angular,但是全局window对象上暴露的 Navigator 接口有一个方法来确定浏览器是否在线工作。

navigator.onLine返回一个布尔值,指示浏览器是否在线工作。没有比这更简单的了。阅读DOM 文档以获得更详细的描述。

示例实现:

if(navigator.onLine) { // true|false
    // ...
}
Run Code Online (Sandbox Code Playgroud)

除了检查属性值外,您还可以挂钩离线和在线事件:

window.addEventListener('online', (e) => console.log(e, "you're online"));
window.addEventListener('offline', (e) => console.log(e, "you're offline"));
Run Code Online (Sandbox Code Playgroud)

然后,如果用户离线,您可以冻结 UI,显示相关消息或提供离线体验(例如,将数据保存到 localStorage,直到用户上线)。