gpt4 book ai didi

angular - Angular-DialogRef-退订-是否需要从afterClosed退订?

转载 作者:行者123 更新时间:2023-12-01 07:11:26 32 4
gpt4 key购买 nike

我的一位同事问我是否需要从对话框的afterClosed()取消订阅。

我们正在使用takeUntil模式来取消订阅ngOnDestroy()上的所有Observable。

this.backEvent = fromEvent(window, 'popstate')
.pipe(
takeUntil(this.destroy$)
)
.subscribe(
() => {
this.navigationService.backClicked = true;
this.navigationService.navigateBackToDirectoryCenter();
}
);

ngOnDestroy()
ngOnDestroy() {
this.destroy$.next();
this.destroy$.complete();
}

那么是否有必要从afterClosed()取消订阅?
dialogRef.afterClosed().subscribe(
(data) => {
console.log(data);
}
},
);

要么?
dialogRef.afterClosed()
.pipe(
takeUntil(this.destroy$)
)
.subscribe(
(data) => {
console.log(data);
},
);

最佳答案

没有
您无需在可观察对象本身完成时退订。您可以通过添加finalize块来验证可观察对象自身是否完成来进行验证。

import { finalize } from "rxjs/operators";
dialogRef
.afterClosed()
.pipe(finalize(() => console.log("completed")))
.subscribe(data => {
console.log(data);
});

并且当您关闭对话框时,您将在控制台中看到 completed,这表示不需要取消订阅可观察项的

关于angular - Angular-DialogRef-退订-是否需要从afterClosed退订?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58198544/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com