Цепочка когда (выполняется:), чтобы сделать много запросов с PromiseKit 6
Я использую PromiseKit 6
делать асинхронные запросы. Подумайте, нумерация страниц
api/v1/resource?
api/v1/resource?offset=5
api/v1/resource?offset=10
...
api/v1/resource?offset=50
Что я делаю в настоящее время это:
let paginatedResources: [Promise<Car>] = (0...<50).map({
self.getPaginatedCar(offset: $0)
})
when(fulfilled: paginatedResources).compactMap { cars in
print(cars)
}
Это работает отлично и все, но теперь мои страницы будут намного выше, чем это (например, около 100 разбитых на страницы запросов, которые необходимо выполнить). Это вызывает проблему, потому что, поскольку я делаю слишком много запросов одновременно, все больше и больше из них отказывают. Я хочу немного сломать это.
Например, если мне нужно сделать 100 запросов, я, вероятно, разделю их на 10 запросов одновременно. Как мне приковать when(fulfilled:)
?
Я думаю, что-то вроде, но это явно не правильный способ сделать это...
when(fulfilled: paginatedResources).compactMap { p in
when(fulfilled: paginatedResources).compactMap { p in
when(fulfilled: paginatedResources).compactMap { p in
when(fulfilled: paginatedResources).compactMap { p in
when(fulfilled: paginatedResources).compactMap { p in
}
}
}
}
}