Вы не объяснили, какова структура интерфейса данных, поэтому я могу предположить, что из массива:
[1,2,3]
Вы хотите создать объект:
{1:1, 2:2, 3:3}.
(если вы разместите ваш интерфейс данных, я обновлю ответ соответствующим образом).
Для создания объекта из массива вы можете использовать уменьшить :
x.pipe(reduce((pre,curr)=>{pre[curr]=curr; return pre;}, {})
Пипсы начинаются с пустого объекта ({}) и в каждой итерации добавляет свойство pre [curr] к этому объекту и задает ему значение curr.
- pre - предыдущее значение из последней итерации
- curr - текущее значение текущей итерации (1, 2 или 3 в приведенном выше примере)
EDIT:
Вам нужно выровнять Observable<Observable<number>>
до Observable<number>
, используя mergeMap (AKA flatMap):
serverNums : Observable<Observable<number>[]> = x.pipe(
map(num_array => num_array.map(n => requestNum(n)),
mergeMap(num=>num)
)
это выдаст все значения requestNum (n) в одной наблюдаемой типа Observable.