Typescript 如何删除eventlistener

Typescript 如何删除eventlistener,typescript,events,ionic-framework,server-sent-events,Typescript,Events,Ionic Framework,Server Sent Events,我正在使用Ionic构建一个应用程序,我使用的事件源如下: ionViewWillEnter() { this.uniqueDeviceID.get() .then((uuid: any) => { this.eventListener = this.events(uuid).addEventListener("message", function(e) { console.log(e);

我正在使用Ionic构建一个应用程序,我使用的事件源如下:

ionViewWillEnter() {
    this.uniqueDeviceID.get()
        .then((uuid: any) => {
            this.eventListener = this.events(uuid).addEventListener("message", function(e) {
                console.log(e);
            }, false);
        })
        .catch((error: any) => {
                console.log(error);
        });
}

events(uuid: any) {
    return new EventSource("http://url.com");
}
ionViewWillLeave() {
    this.eventListener.removeEventListener("message", function(e) {
        console.log(e);
    }, false);
}
它工作正常,但我想在再次离开视图时阻止侦听器-类似这样:

ionViewWillEnter() {
    this.uniqueDeviceID.get()
        .then((uuid: any) => {
            this.eventListener = this.events(uuid).addEventListener("message", function(e) {
                console.log(e);
            }, false);
        })
        .catch((error: any) => {
                console.log(error);
        });
}

events(uuid: any) {
    return new EventSource("http://url.com");
}
ionViewWillLeave() {
    this.eventListener.removeEventListener("message", function(e) {
        console.log(e);
    }, false);
}

但它不起作用。如何再次删除侦听器?

您应该将创建的EventSource和回调存储在变量中。只有在这种情况下,您才能引用它们,这是删除侦听器所必需的, e、 g: