Если вы согласны делать это последовательно, вы можете попробовать что-то вроде этого
const items$ = from([{id: 1, name: 'a'}, {id: 2, name: 'b'}, {id: 3, name: 'c'}])
const request = async (data) => {
// data here would be any single object in your array
// and `doHttpRequest` is any function that returns the type
// given the original object
const type = await doHttpRequest(data)
return {
...data,
type
}
}
const results$ = items$.pipe(
// flatMap being used here since we're not returning
// a synchronous value from request
flatMap(request),
toArray()
);
// somewhere else in your code
results$.subscribe(value => console.log(value));
Если вы пропустите часть toArray
, вы можете оставить свой наблюдаемый в виде потока объектов вместо одного массива. завершение в конце.