Visual studio code 如果使用RxJS的shareReplay运算符,则mocha中的测试未完成

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

我有一个简单的Javascript函数,它返回一个可观察的对象,我使用参数1应用了
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(),
  ...