【发布时间】:2020-05-19 06:45:45
【问题描述】:
我在 observable (courses$) 上使用 RxJS shareReplay() 运算符在其他两个 observables (beginnerCourses$ 和 advancedCourses$) 之间共享 observable 流。它工作正常,成功时两个可观察对象之间共享单个 API 调用响应。
但是,当涉及到错误时,这些 observable 不会共享错误,并且会在浏览器控制台中看到错误被抛出两次。 shareReplay() 操作员也不会共享错误吗?这是一种预期的行为吗?
const http$ = createHttpObservable('/api/courses');
const courses$ = http$
.pipe(
map(res => res['payload'] ),
shareReplay(),
catchError(err => {
return throwError(err);
})
);
this.beginnerCourses$ = courses$
.pipe(
map(courses => courses
.filter(course => course.category === 'BEGINNER')));
this.advancedCourses$ = courses$
.pipe(
map(courses => courses
.filter(course => course.category === 'ADVANCED')));
}
【问题讨论】:
标签: rxjs rxjs6 rxjs-pipeable-operators