链接时(履行:)用PromiseKit 6发出许多请求

时间:2018-03-08 01:39:40

标签: ios swift asynchronous promise promisekit

我正在使用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 个答案:

没有答案