Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 当我的应用程序即将关闭时,如何调用API_Angular_Angular Http - Fatal编程技术网

Angular 当我的应用程序即将关闭时,如何调用API

Angular 当我的应用程序即将关闭时,如何调用API,angular,angular-http,Angular,Angular Http,我想点击一个API来设置用户的最后活动时间。 但API并没有发挥作用。 由于API初始化和命中服务器需要时间,在API命中开始之前,应用程序被关闭 我在app.component.ts文件中尝试了此代码 @HostListener('window:beforeunload',['$event'])) 卸船前(事件){ 此._apiService.setLastActive({time:new Date().getTime()/1000}) .订阅(数据=>{ },err=>{ }) } 有人能

我想点击一个API来设置用户的最后活动时间。 但API并没有发挥作用。 由于API初始化和命中服务器需要时间,在API命中开始之前,应用程序被关闭

我在app.component.ts文件中尝试了此代码

@HostListener('window:beforeunload',['$event']))
卸船前(事件){
此._apiService.setLastActive({time:new Date().getTime()/1000})
.订阅(数据=>{
},err=>{
})
}

有人能建议我什么时候调用API来设置用户的最后活动状态吗?

请在退出组件的component.ts文件中使用
ngondstroy()

功能
在Angular销毁指令/组件之前,它会进行清理。取消订阅观测值并分离事件处理程序以避免内存泄漏,并在Angular销毁指令/组件之前调用

如果您有未保存的更改。试试这个答案

刚刚遇到这个:。beforeunload似乎不支持异步,因此必须使用XMLHttpRequest来调用API

从另一个职位:

window.addEventListener("beforeunload", function (event) {
  var client = new XMLHttpRequest();
  client.open("POST", "http://url/to/endsession", false); // third parameter indicates sync xhr
  client.setRequestHeader("Content-Type", "application/json");
  client.send('{userId: "42"}');
  console.log('done!!!'); // outputs when a response is received 
});

使用javascript代码,可能对您有用

window.onbeforeunload = e => {
    e.returnValue = 'Do you really want to leave this site?';
    return dialogText;
};

尝试以下操作:beforeUnloadHander(event){this.\u apiService.setLastActive({time:new Date().getTime()/1000}).subscribe(data=>{return true},err=>{});return false;}此处有更多信息:提示用户离开站点。是否有其他方法不提示用户。当我关闭浏览器时,它不起作用。你可能想研究一些使用轮询的解决方案,因为依赖关闭前运行的代码可能会导致问题。如果浏览器/计算机意外关闭怎么办?请参阅