Подписки на каналы не вызываются, когда наблюдатель используется в forkJoin

#angular #rxjs

#угловые #rxjs

Вопрос:

Вот пример кода :

 const obs1 = ajax.getJSON("https://api.github.com/users/google");
obs1.pipe(
  map(result => {
    console.log("map");
    console.log(result);
    return resu<
  })
);

/*
  when all observables complete, provide the last
  emitted value from each as dictionary
*/
forkJoin([obs1])
  // { google: object, microsoft: object, users: array }
  .subscribe(result => {
    console.log("forkJoin");
    console.log(result);
  });
  

https://stackblitz.com/edit/typescript-fuhehc?file=index.tsamp;devtoolsheight=100

Почему подписки на каналы не вызываются forkJoin ?

Комментарии:

1. Что такое операторы? Конвейерный оператор — это функция, которая принимает наблюдаемое в качестве входных данных и возвращает другое наблюдаемое. Это чистая операция: предыдущее наблюдаемое остается неизмененным.

Ответ №1:

Вы подписались на свой obs1 observable, а не на второй, который вы объявили:

 const obs1 = ajax.getJSON("https://api.github.com/users/google");
const obs2 = obs1.pipe(
  map(result => {
    console.log("map");
    console.log(result);
    return resu<
  })
);

/*
  when all observables complete, provide the last
  emitted value from each as dictionary
*/
forkJoin([obs2])
  // { google: object, microsoft: object, users: array }
  .subscribe(result => {
    console.log("forkJoin");
    console.log(result);
  });
  

https://stackblitz.com/edit/typescript-qiwftr?devtoolsheight=33amp;file=index.ts