#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