`withLatestFrom` - выдает ошибку при реализации с наблюдаемым - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь интегрировать ngrx кэширование, используя оператор rxjs withLatestFrom. Но получаю ошибку как:

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)))
    )
  })
)

1 Ответ

1 голос
/ 08 мая 2019
   if(courses){ //if courses available just return it
                    map((courses:ModelCourse[]) => (new LoadCourseSuccess(courses))),
                    catchError(err => of(new LoadCourseFail(err)))
                    return;
                }

Вы не возвращаете действие, просто void

...