0
イベントリスナは、ルートパスが変更されたときに実行されます。最初に実行されたときにのみ、リスナ内で数行のコードを実行します。条件付きでこれをやろうとしています。コードはcatchブロックに入るとき角度2のルータイベントリスナーは何らかの閉鎖を形成しますか?
.catch((error: any) => {
console.log("inside catch block");
this.catchFlag = true;
this._router.events.subscribe(
(event) => {
if (event instanceof NavigationEnd) {
console.log("catch flag in subscription ", this.catchFlag);
if (this.catchFlag === true) {
this.catchFlag = false;
// some code here
}
}
});
return Observable.throw(error);
});
私は、コードがキャッチブログに入っていないが、ルート変更イベントがトリガされたとき、私は、サブスクリプション内のコードを実行したくない、ルーターパスの必要性を持っていますそれ。しかし、たとえルータイベントであっても、catchFlag
の値はtrue
となりますが、最初のエントリでfalse
となります。これはどのように動作するはずですか?はいの場合、条件付きでこれを実行する方法は何ですか?