繁体   English   中英

用于Observable.of()的RxJS first() - 没有顺序的元素

[英]RxJS first() for Observable.of() - no elements in sequence

对于我的测试,我试图用Observable.of()模拟一个事件流但是当我尝试时

const actions$ = Observable.of({});
...
// in the function that is tested
actions$
  .filter(action => action.type === 'LOAD_REQUEST') 
  .first()
  .subscribe(() => { ... do something });

我收到以下错误

EmptyError:xxx.js中没有按顺序排列的元素

这只发生在我使用.first()

如何模拟事件流以使测试不会失败?

.first()将只发出一个项目或抛出错误(如果没有提供defaultValue参数),因此在空的observable上调用它将导致错误。 这是基于文档的预期行为。

如果您想从observable中获取最多一个项目,请使用.take(1)

first()的文档说:

如果Observable在发送任何下一个通知之前完成,则向Observer的错误回调提供EmptyError。

因此,错误发生是因为您的测试数据未通过filter()运算符并立即发出完整。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM