我正在使用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
}
}
}
}
}