switchMap 到 switchMapTo

Lpp*_*Edd 3 rxjs typescript

目前我有这段代码

this.save()
  .pipe(switchMap(() => this.unlock()))
  .subscribe(...);
Run Code Online (Sandbox Code Playgroud)

saveunlock实现是

private save(): Observable<void> {
  return new Observable(subscriber => {
    this.xmlService.save(..., () => {
      ...       
      subscriber.next();
      subscriber.complete();
    });
  });
}

private unlock(): Observable<void> {
  return this.httpService.unlock(this.id);
}
Run Code Online (Sandbox Code Playgroud)

由于这unlock并不真正依赖于值save返回,我可以使用吗switchMapTo

this.save()
  .pipe(switchMapTo(this.unlock()))
  .subscribe(...);
Run Code Online (Sandbox Code Playgroud)

或者我误解了*To变体的行为方式?

Rea*_*lar 8

switchMapTo与 相同,switchMap只是它采用可观察值而不是回调函数。查看源代码:

https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/switchMapTo.ts#L56