在Rxjs Forkjoin中访问可观察

时间:2018-10-15 11:28:39

标签: angular typescript rxjs observable

因此,我有一个要应用All_Methods操作的可观察对象列表。我想知道responses数组中的每个对象引用的是哪个对象。

forkJoin

所以基本上,这是为了在我收到http响应后使用请求参数之一。理想情况下,我可以修改服务器的响应,并在响应中传递一些属性。但是我目前没有那个选择。订阅响应后,关于如何访问请求对象的任何想法?

2 个答案:

答案 0 :(得分:1)

您也可以这样尝试。

let observables = [of(1), of(2), of(3)];

forkJoin(observables)
    .subscribe(
        ([typeData1, typeData2, typeData3]) => {
            // typeData1 => 1st observable result
            // typeData2 => 2nd observable result
            // typeData3 => 3rd observable result
            this.isLoaded = true;
        }
    );

对于动态可观察数组,

let observables = [of(1), of(2), of(3), of(4)];

forkJoin(observables)
  .subscribe(
    ([...typeDataArr]) => {
        console.log(typeDataArr);
    }
  );

答案 1 :(得分:0)

let observables = getMyObservables();

forkJoin(observables).subscribe(responses=>{
    responses.forEach(response=>{
       //figure out what observable this response corresponds to
       console.log(response.someKindOfIdentifier);
    });
});


getMyObservables() {
  return this.http.get('blah_blah_blah').pipe(map(response => {
    originalResponse: response,
    someKindOfIdentifier: WHATEVER_YOU_WANT
  });
}