Visual studio code 如果使用RxJS的shareReplay运算符,则mocha中的测试未完成
我有一个简单的Javascript函数,它返回一个可观察的对象,我使用参数1应用了Visual studio code 如果使用RxJS的shareReplay运算符,则mocha中的测试未完成,visual-studio-code,rxjs,mocha.js,Visual Studio Code,Rxjs,Mocha.js,我有一个简单的Javascript函数,它返回一个可观察的对象,我使用参数1应用了shareReplay操作符 [![export function doStuffWithShareReplay() { return interval(100).pipe( shareReplay(1), tap(d => console.log('do stuff 1', d)), take(5) ); } 如果我将这样的函数放在一个moc
shareReplay
操作符
[![export function doStuffWithShareReplay() {
return interval(100).pipe(
shareReplay(1),
tap(d => console.log('do stuff 1', d)),
take(5)
);
}
如果我将这样的函数放在一个mocha测试中,并从VSCode中运行它,那么测试的执行似乎永远不会完成,我必须手动停止测试执行。更准确地说,测试按预期通过,但是VScode顶部中心的小控制板没有关闭,我必须单击红色按钮来关闭它,如下图所示。如果删除shareReplay
,执行将按预期结束。我想知道这种行为的原因是什么
使用publishReplay(1)
和refCount()
代替shareReplay(1)
:
自从RxJS 5.5(仍然存在于RxJS 6.1中)以来,shareReplay(1)
中存在一个bug,它阻止了从源代码取消订阅
有关更多详细信息,请参阅本期:
return interval(100).pipe(
publishReplay(1),
refCount(),
...