代码之家  ›  专栏  ›  技术社区  ›  user2024080

`withLatestFrom“-在使用observable实现时引发错误

  •  0
  • user2024080  · 技术社区  · 6 年前

    我正在尝试整合 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)))
        )
      })
    )
    
    
    0 回复  |  直到 6 年前
        1
  •  1
  •   timdeschryver    6 年前
       if(courses){ //if courses available just return it
                        map((courses:ModelCourse[]) => (new LoadCourseSuccess(courses))),
                        catchError(err => of(new LoadCourseFail(err)))
                        return;
                    }
    

    你没有返回一个动作,只是一个 void

    推荐文章