【发布时间】:2020-08-27 22:44:00
【问题描述】:
使用此代码:
select(): void {
this.initialObservable$
.pipe(
first(),
switchMap(() => this.service.getData())
).subscribe(// do stuff);
}
我刚刚遇到了内存泄漏错误。稍后再次发出服务调用,我意识到订阅从未清理过,因为订阅内容再次运行。
显然这是我的解决办法:
select(): void {
this.initialObservable$
.pipe(
switchMap(() => this.service.getData()),
first()
).subscribe(// do stuff);
}
现在效果很好 - 将 first() 运算符调用移动到管道的末尾。
我一直在研究 jasmine marble 测试,我相信我需要对可观察流的引用来测试它,而我没有。所以回归测试会很混乱,这让我觉得我在做的事情一定是不好的做法。请问以单元可测试的方式编写此类代码的正确方法是什么?最好用于大理石测试。
【问题讨论】:
标签: angular rxjs jasmine-marbles