Я получаю наблюдаемые из ответа от Firestore. Затем я создаю список наблюдаемых в массиве. После того, как я хочу объединить этот список наблюдаемых с оператором объединения RXJS. Поскольку я никогда заранее не определяю количество результатов, которые нужно вставить в мой массив, мне нужно динамически получать наблюдаемые в операторе объединения.
Я попытался использовать массив .map, чтобы получить содержимое массива наблюдаемых. , но это не работает. Моя идея состоит в том, чтобы прийти к такому результату: const combineAll = merge(queriesTab[0], queriesTab[1], queriesTab[2]).pipe(mergeAll());
динамически.
Я пытался const combineAll = merge(requetesTab.map(id => id+',')).pipe(mergeAll());
, но это не работает.
Я пытался array.join () создать список наблюдаемыхстроки, но это не работает. Я перечислил все ответы на одну и ту же тему, не найдя ответа. Я уверен, что это возможно с .map, но я не знаю, как. Спасибо за вашу помощь.
var counter = 0;
var queriesTab = [];
for (counter=0; counter < secteurAct.length; counter++ ){
var recup = this['requete' + counter];
recup = this.firestore.collection('annonce', ref => ref
.where("secteurActivite","==", secteurAct[counter])
.orderBy("date"))
.snapshotChanges().pipe(
map(actions => actions.map(a => {
const data = a.payload.doc.data();
const id = a.payload.doc.id;
return { id, ...data };
}))
);
queriesTab.push(recup);
}//End for
const combineAll = merge(queriesTab[0], queriesTab[1], queriesTab[2]).pipe(mergeAll());
return combineAll;