typescript 发送依赖于其他请求的请求

knsnq2tg  于 2023-10-22  发布在  TypeScript
关注(0)|答案(1)|浏览(133)

我读过Angular rxjs操作符,但不明白如何改变我的逻辑,将请求发送到服务器,这取决于其他请求及其数据。
我打开了一个模态窗口,在ngOnInit上我发送了几个请求,其中一些是连接在一起的。在发送请求时,我没有使用任何rxjs操作符。
就像是:

getMyCompanyDetails(){
 this.companyService.getCompany('my company name').subscribe(
  data => {
  .... there is logic I implement with response data, which will depends on the second request
 }
}

我的目标是顺序发送相互依赖的请求。第二个将等待,直到第一个准备好。我读到了关于它的不同方法,比如switchMap,concatMap等等。但我在执行时遇到了困难。请帮助我在这种情况下必须使用的最佳模式(解决方案)。谢谢你,谢谢!

u3r8eeie

u3r8eeie1#

switchMap操作符将允许您处理响应,但需要您返回一个新的observable。使用此函数返回一个基于对'getCompany'调用的响应的observable。然后,您将订阅这个新的observable以访问其响应。

getMyCompanyDetails(){
 this.companyService.getCompany('my company name').pipe(switchMap((data) => { 
   if (data) {
     return someObservable;
   } 

   return otherObservable;
 })).subscribe((resultOfInnerObs) => { /* do something */ })

我建议您查看https://www.learnrxjs.io/learn-rxjs/operators/transformation/switchmap上的文档和示例

相关问题