繁体   English   中英

角RXJS返回3个可观察流的数组

[英]Angular RXJS return array of 3 observable streams

我需要使用以下3个流创建每个数组。 IE: [homePage, mainNavigation, loan_originators]

但这只会返回mainNavigation

  const homePage = this.flamelinkService.getData('homePage');
  const mainNavigation = this.flamelinkService.getNav('mainNavigation');
  const loan_originators = this.catalogApiService.get('loan_originators', qry);

  return mainNavigation.pipe(
    concat( homePage, loan_originators),
    first(),
    tap( async navResolveData => {
      // navResolveData = navResolveData[0];
      _log('== Navigation Data Resolver ==> ', 't', navResolveData);
      if (isPlatformServer(this.platformId)) {
        this.transferState.set(INFO_KEY, navResolveData);
      }
    }),
  );

在这里我尝试forkJoin。 但是什么都没有

  const homePage = this.flamelinkService.getData('homePage');
  const mainNavigation = this.flamelinkService.getNav('mainNavigation');
  const loan_originators = this.catalogApiService.get('loan_originators', qry);
  return forkJoin([homePage, loan_originators, mainNavigation]).pipe(
    first(),
    tap( async navResolveData => {
      // navResolveData = navResolveData[0];
      _log('== Navigation Data Resolver ==> ', 't', navResolveData);
      if (isPlatformServer(this.platformId)) {
        this.transferState.set(INFO_KEY, navResolveData);
      }
    }),
  );

在这种情况下,您可以使用forkJoin

forkJoin(
  [
   this.flamelinkService.getData('homePage'),
   this.flamelinkService.getNav('mainNavigation'),
   this.catalogApiService.get('loan_originators', qry)
  ]
).subscribe(([res1, res2, res3]) => {
       // do something
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM