Цепочка когда (выполняется:), чтобы сделать много запросов с 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
        }
      }
    }
  }
}

0 ответов

Другие вопросы по тегам