【发布时间】:2019-05-08 10:20:10
【问题描述】:
我正在尝试使用 rxjs withLatestFrom 运算符集成 ngrx 缓存。但是得到一个错误:
You provided 'undefined' where a stream was expected.
You can provide an Observable, Promise, Array, or Iterable.
有人更正我的代码吗?
这是我的代码:
@Effect()
EffLoadCourse = this.actions.pipe(
ofType(LoadCourse.TYPE),
withLatestFrom(
this.store.pipe(select(subscribes.getCourses)), //getting it from store
(action: LoadCourse, courses: ModelCourse[]) => {
// console.log('action is ', action, 'courses is', courses)
return courses;
}
),
mergeMap((courses: ModelCourse[]) => {
if (courses) { //if courses available just return it
map((courses: ModelCourse[]) => (new LoadCourseSuccess(courses))),
catchError(err => of(new LoadCourseFail(err)))
return;
}
//only return on courses unavailability
return this.courseService.getCourse().pipe(
map((courses: ModelCourse[]) => (new LoadCourseSuccess(courses))),
catchError(err => of(new LoadCourseFail(err)))
)
})
)
【问题讨论】:
-
请同时显示您的选择器“getCourses”以及您如何定义您的状态
-
在
mergeMap内!courses时您没有返回任何内容
标签: rxjs ngrx rxjs-pipeable-operators