Как я могу преобразовать наблюдаемую, которая испускает массив в наблюдаемую, которая испускает каждое значение массива индивидуально? - PullRequest
0 голосов
/ 28 марта 2020

Я использую RXFire и RX JS.

collectionData(firebase.firestore.collection('collectionname')).subscribe(x=>console.log(x)

возвращает

// [{document1}, {document2}]

То, что я хотел бы, это наблюдаемая, которая возвращает

// {document1}
// {document2}

Я попытался использовать комбинацию from () и toArray () (т.е. преобразовать наблюдаемое в простой массив и обратно в наблюдаемое, которое испускает каждый документ по одному), но toArray () создает только наблюдаемое, которое генерирует массив, а не фактический массив. Мне нужна операция, которая противоположна toArray (). Возьмите наблюдаемое, которое испускает массив, и превратите его в наблюдаемое, которое испускает каждое значение по отдельности.

Как мне это сделать?


Редактировать:

Я также попытался сделать что-то вроде

const newObs = oldObs.subscribe(x => from(x))

, но в этом хранилище подписчик, а не новый наблюдаемый. = (

1 Ответ

0 голосов
/ 28 марта 2020

Есть несколько способов сделать это. Например:

collectionData(firebase.firestore.collection('collectionname'))
  .pipe(
    concatAll(),
  )
  .subscribe();

Вы также можете использовать concatMap(array => array).

Вместо concat* вы также можете использовать merge*.

...