Angular 我该如何防止;重新加载站点?“;警觉的?(角度8,铬75.0)

Angular 我该如何防止;重新加载站点?“;警觉的?(角度8,铬75.0),angular,google-chrome,Angular,Google Chrome,我需要在用户离开或刷新页面之前运行一段代码,然后才运行。Leave工作正常,但refresh的行为完全不同,不会触发我的路由保护,因此我尝试在@HostListener(“window:beforeunload”,[“$event”])上执行此操作 在unload上运行代码似乎不起作用,我必须在卸载之前执行 然而问题是,chrome允许用户取消刷新,然后在我调用代码后留下。然后我的用户有一些我已经告诉后端的东西,他们已经没有了 我还没有找到任何证据表明有一种方法可以从这个弹出窗口中获取值,从而

我需要在用户离开或刷新页面之前运行一段代码,然后才运行。Leave工作正常,但refresh的行为完全不同,不会触发我的路由保护,因此我尝试在
@HostListener(“window:beforeunload”,[“$event”])
上执行此操作

unload
上运行代码似乎不起作用,我必须在卸载之前执行

然而问题是,chrome允许用户取消刷新,然后在我调用代码后留下。然后我的用户有一些我已经告诉后端的东西,他们已经没有了

我还没有找到任何证据表明有一种方法可以从这个弹出窗口中获取值,从而知道用户是否试图留下来

相反,我一直试图阻止这个弹出窗口,这也让我陷入困境。我已经尝试了我在这里找到的每一个解决方案,但似乎没有一个能奏效。我错过了什么

    @HostListener("window:beforeunload", ["$event"])
    beforeUnloadHander(event) {
        this.codeINeedToRun();

        //failed attempts to prevent popup =>
        event.preventDefault();
        event.returnValue = null;
        window.onbeforeunload = function () {
            return null;
        };
        event.stopPropagation();
    }