将进行 http 调用但将忽略数据并且不会 return 可观察的 rxjs 运算符
rxjs operator that will make http call but will ignore the data and will not return an observable
我想进行 HTTP 调用并获得可观察的输出(这是比较简单的部分),然后立即进行另一个 HTTP 调用并忽略输出。
我无法使用 switchMap 运算符,因为第二个 HTTP 调用没有 return 有用的东西。它只是 returns 'Done!' 和我需要的第一个调用 returns complex JSON。
我所做的并且有效,是订阅内部 http 调用,我想知道是否有一个 rxjs 运算符可以代替我使用:
this.dataStorageBaseService.createIdentity(identity)
.do(() => this.authService.JustSimpleHTTPCall().first().subscribe()).subscribe();
有没有我可以使用的 RxJS 运算符,而不是再次订阅 "JustSimpleHTTPCall"?地图会很好,但我不需要 JustSimpleHTTPCall returns 的数据,它不会与 "createIdentity" 的输出一起工作,我需要 return 作为可观察的。
你可以这样做:
this.dataStorageBaseService.createIdentity(identity)
.concatMap(result => this.authService.JustSimpleHTTPCall()
.map(() => result) // ignore the second response and use the first one instead
)
.subscribe(...);
你只需要你的内部 Observable 发出外部结果 - 这可以通过 concat
来完成
this.dataStorageBaseService.createIdentity(identity)
.switchMap(result => this.authService.JustSimpleHTTPCall().concat(Observable.of(result)))
.subscribe(...);
我想进行 HTTP 调用并获得可观察的输出(这是比较简单的部分),然后立即进行另一个 HTTP 调用并忽略输出。
我无法使用 switchMap 运算符,因为第二个 HTTP 调用没有 return 有用的东西。它只是 returns 'Done!' 和我需要的第一个调用 returns complex JSON。
我所做的并且有效,是订阅内部 http 调用,我想知道是否有一个 rxjs 运算符可以代替我使用:
this.dataStorageBaseService.createIdentity(identity)
.do(() => this.authService.JustSimpleHTTPCall().first().subscribe()).subscribe();
有没有我可以使用的 RxJS 运算符,而不是再次订阅 "JustSimpleHTTPCall"?地图会很好,但我不需要 JustSimpleHTTPCall returns 的数据,它不会与 "createIdentity" 的输出一起工作,我需要 return 作为可观察的。
你可以这样做:
this.dataStorageBaseService.createIdentity(identity)
.concatMap(result => this.authService.JustSimpleHTTPCall()
.map(() => result) // ignore the second response and use the first one instead
)
.subscribe(...);
你只需要你的内部 Observable 发出外部结果 - 这可以通过 concat
来完成this.dataStorageBaseService.createIdentity(identity)
.switchMap(result => this.authService.JustSimpleHTTPCall().concat(Observable.of(result)))
.subscribe(...);