RxJs如何完成内部可观测

RxJs如何完成内部可观测,rxjs,Rxjs,我有这样的功能: this.eventTaskWorking$ = completeStage .pipe( map(result => { switch (result) { case Statuses.LAST_TASK: { console.info('returning finish event observable'); throw { err: 0 }; } defa

我有这样的功能:

this.eventTaskWorking$ = completeStage
  .pipe(
    map(result => {
      switch (result) {
        case Statuses.LAST_TASK: {
          console.info('returning finish event observable');
          throw { err: 0 };
        }
        default: {
          return EMPTY;
        }
      }
    }),
    catchError(() => completeEvent)
  )
  .subscribe();
当我抛出异常时,“completeEvent”已完成,但如果我尝试使用switchMap、mergeMap等,它将不起作用:

this.eventTaskWorking$ = completeStage
  .pipe(
    map(result => {
      switch (result) {
        case Statuses.LAST_TASK: {
          return completeEvent;
        }
        default: {
          return EMPTY;
        }
      }
    }),
    switchMap(t => t),        
  )
  .subscribe();
怎么了

UPD:

const completeEvent=this.FinishEvent(eventRef,uid);
私有FinishEvent(eventRef:Observable,taskUid:string):Observable{
返回事件参考管道(
switchMap(t=>this.UpdateTaskStatus(taskUid,3));
}

好的,看来FinishEvent没有返回observable,我的错误,

和“它不工作”是什么意思?@cartant completeEvent是一个函数,返回了observable值,但这个observable的管道体函数没有执行。这需要一个。
const completeEvent = this.FinishEvent(eventRef, uid);

private FinishEvent(eventRef: Observable<IEvent>, taskUid: string): Observable<any> {
return eventRef.pipe(
  switchMap(t => this.UpdateTaskStatus(taskUid, 3)));
}