Доступ к наблюдаемому в Rxjs Forkjoin - PullRequest
0 голосов
/ 15 октября 2018

Итак, у меня есть список наблюдаемых, к которым я применяю операцию forkJoin.Я хочу знать, к какому наблюдаемому относится каждый объект в массиве ответов.

let observables = ...//array of observables
forkJoin(observables).subscribe(responses=>{
  responses.forEach(response=>{
    //figure out what observable this response corresponds to
  });
});

Так что в основном это для использования одного из параметров запроса после получения ответа http.В идеале я могу изменить ответ от сервера и передать какой-либо атрибут в ответе.Но у меня нет такой возможности в настоящее время.Любые идеи о том, как я могу получить доступ к объекту запроса после подписки на ответ?

Ответы [ 2 ]

0 голосов
/ 15 октября 2018
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
  });
}
0 голосов
/ 15 октября 2018

Вы также можете попробовать вот так.

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);
    }
  );
...