【发布时间】:2019-12-30 17:50:59
【问题描述】:
我有一个网络请求。如果
,我想发出这个请求并回退到缓存值- 请求失败
- 请求时间过长
我在想我可以使用race 来提出请求,也可以使用after 给自己一个兑现承诺的时间。
类似的东西-
func getCompany() -> Promise<Company> {
let request: Promise<Company> = client.request(.getCompany)
let cachedResponse: Promise<Company?> = cache.getObject(ofType: Company.self, forKey: "company")
return race(request, after(seconds: 4).then(cachedResponse))
}
但是使用
编译失败Cannot convert value of type 'Promise<Company?>' to expected argument type '(Void) -> Guarantee<_>'
我想说基本上返回第一个解决的问题,在这种情况下,如果 request 花费的时间超过 4 秒,则返回 cachedResponse。
【问题讨论】:
标签: swift asynchronous promisekit