Я загружаю данные с сервера, используя 2 конечные точки отдыха. 1-й дает мне только список идентификаторов, 2-й дает мне детали одного объекта по идентификатору. Поэтому я должен сначала получить все идентификаторы, а затем вызвать 2-ю конечную точку для каждого идентификатора. Слишком много звонков одновременно, поэтому я бы хотел последовательно вызывать 2-ю конечную точку в пакетах по X (число не имеет значения, может быть 100, может быть 1000).
Мой текущий код в TypeScript:
getAll(): Observable<Result[]> {
return this.http.get<DtoWithIdsOnly>(`https://${environment.host}/${API}`)
.pipe(
// request individual object details
map(dtoWithIds => dtoWithIds.ids.map(partialResult => this.getOne(partialResult.id))),
// combine results async
flatMap(individualRequests => observableFamilies.length > 0 ? combineLatest(observableFamilies) : of([])));
}
Таким образом, «проблема» является окончательной flatMap
делает ВСЕ запросы одновременно. Как я могу задушить их?