我async
在Angular或takeUntil(...)
以下组件中使用管道:
export class BaseComponent implements OnDestroy {
ngUnsubscribe = new Subject<void>();
ngOnDestroy(): void {
this.ngUnsubscribe.next();
this.ngUnsubscribe.complete();
}
}
但是,我一直想知道使用时需要做什么from(myPromise)
。Promises只提供一个结果,但我已经将其转换为可观察的结果,因此感觉就像是我使一个等效的方法提供可观察的结果,我应该take(1)
根据用途使用或取消订阅,因为我并不总是直接订阅和而是在中使用它exhaustMap(() => this.hasTokenExpired$()
。
public async hasTokenExpired(): Promise<boolean> {
const token = await this.getToken();
if (token) {
return this.jwtHelper.isTokenExpired(token);
}
return true;
}
// Observable equivalent method:
public hasTokenExpired$(): Observable<boolean> {
return from(this.hasTokenExpired()); // Could pipe `take(1)` permanently
}
我应该是使用take(1)
的from(myPromise)
?万一这会引起内存泄漏,我一直在想,但我找不到一篇文章来确认我应该这样做。
另外,如果有更好的方法来制作这些可观察的等效方法,我总是乐于提出建议。
take
在这种情况下,您无需使用,因为从Promise创建的Observable只会:
这个答案也可能对阅读有帮助:toPromise()取消订阅Observable吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句