javascript - RxJS first() for Observable.of() - 序列中没有元素

标签 javascript angular rxjs ngrx

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

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

出现以下错误

EmptyError: no elements in sequence in xxx.js

这仅在我使用 .first() 时发生。

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

最佳答案

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

如果您想从可观察对象中获取最多一项,请使用 .take(1) .

关于javascript - RxJS first() for Observable.of() - 序列中没有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40848709/

相关文章:

typescript - 如何从 Angular2 组件模板子元素事件创建 RxJS 可观察流

javascript - 我想在 javascript 中验证日期。任何人都可以帮助我理解这一点吗?

javascript - Angular Http Get 在 Chrome/Safari 与 Firefox 中返回不同

angular - 如何为 3rd 方库禁用 angular2 更改检测

html - 尝试显示图像 "blocked:other"时出现以下错误

javascript - Rxjs:将数组字段中的每个元素从对象的可观察对象映射到另一个可观察对象

javascript - Observable 而不是 Promise with async\await

javascript - 使用 javascript 的 Ruby Flash 消息不会出现

javascript - 如何使用 SpyOnEvent 通过 jquery-jasmine 监视事件

javascript - Sublime Text 2 中的 Node.js 构建系统