主持人监听器不起作用。 正在调用触发请求的函数,但不会调用后操作。 任何人都可以帮忙吗?
app.component.ts
Auto DevOps (Beta)
答案 0 :(得分:0)
我认为您无法在POST
中异步beforeunload
,因为该功能将终止,用户将在您的订阅结算之前离开该页面。
你可以自己做一个synchronous
(阻止)电话,但Angular
不支持(因为这是一个坏主意),所以你必须采用老式的方式。
答案 1 :(得分:0)
在我更改了unlockAlias()以返回http结果(这是一个可观察到的结果)并将其订阅到(“ window:beforeunload”)事件之后,它起作用了。
@HostListener('window:beforeunload', ['$event'])
onWindowClose($event) {
this.unlockAlias().subscribe();
unlockAlias() {
const apiEndPoint = environment.baseUrl + environment.unLockAlais;
const body = '{"uid": "' + this.service.userInfo.username + '" }';
const headers = new Headers({ 'Content-Type': 'application/json' });
headers.append('Access-Control-Allow-Origin', '*');
const options = new RequestOptions({ headers: headers });
return this.http.post(apiEndPoint, body, options);
}