【发布时间】:2017-09-29 23:59:47
【问题描述】:
我有 2 个 API 端点;后者取决于前者的结果。
第一个端点是/api/v1/regions/,它像这样返回一个区域JSON列表
{
region_id: 1,
mayor_id: 9
},
{
region_id: 1,
mayor_id: 10
},
第二个端点是/api/v1/mayor/<id>/,它返回一个关于市长的 JSON。我现在的工作流程是进行第一个 API 调用以获取所有区域,然后我想根据从第一个端点获得的 ID 对 /mayor/ 端点进行一堆 API 调用。所以在这个例子中,我想再打 2 个电话:
/api/v1/mayor/9/
/api/v1/mayor/10/
我已经设置了 2 个函数来进行每个 API 调用,并成功地为每个函数取回 JSON。
func fetchRegions() -> Promise<[Region]> {
}
func fetchMayor(id: String) -> Promise<Mayor> {
}
现在我想看看如何将所有这些链接在一起。这是我目前所拥有的:
var fetchedRegions: [Region] = []
firstly {
fetchRegions()
}.then { regions in
fetchedRegions = regions
}.then {
for r in fetchedRegions {
self.fetchMayor(id: r.mayor_id).then { mayor in
print(mayor)
}.catch { error in
}
}
}.catch { error in // Error: Missing return in a closure expected to return 'AnyPromise'
print(error)
}
【问题讨论】:
标签: json swift promise alamofire promisekit