Angular 8 beforeunload事件在关闭选项卡上不工作

Angular 8 beforeunload事件在关闭选项卡上不工作,angular,Angular,嘿,我试着在“关闭”选项卡上发出http请求,但不起作用, 但如果我导航到其他组件,它的工作。 我试着像这篇文章一样改变功能 但它现在对我起作用了 我的http服务: removeCurrentEditor(reportID) { return this.http.request('GET', this.baseUrl + this.REPORTS_API + '/' + this.REMOVE_CURRENT_EDITOR + '/' + reportID, {respo

嘿,我试着在“关闭”选项卡上发出http请求,但不起作用, 但如果我导航到其他组件,它的工作。 我试着像这篇文章一样改变功能

但它现在对我起作用了

我的http服务:

  removeCurrentEditor(reportID) {
    return this.http.request('GET', this.baseUrl + this.REPORTS_API + '/' + this.REMOVE_CURRENT_EDITOR
     + '/' + reportID, {responseType: 'json'});
  }
我的组成部分:

 // Handle close tab
  @HostListener('window:beforeunload', ['$event'])
  beforeUnloadHander(event) {
    this.reportService.removeCurrentEditor(this.reportID);
  }

谢谢

我们的应用程序也有类似的问题,在浏览器选项卡关闭时,我们必须发出http调用。问题是当浏览器关闭时,它会取消所有xhr调用。因此无法实现这一点,angular不支持即时同步http调用

最后,我们在onBeforeUnload事件中使用了同步xmlhttprequest。这样,浏览器会在关闭浏览器之前等待调用完成

XMLHttpRequest.open(method, url[, async[, user[, password]]])
async参数如果设置为false,则表示同步请求

您可以探索的另一个选项类似于心跳客户端,它可以检测应用程序是否打开。如果没有,服务器可以执行逻辑