大佬教程收集整理的这篇文章主要介绍了ios – 如何在Swift中优化链接异步请求,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的代码:
URLSession.shared.dataTask(with: URLrequest(url: URL(String: "first")!)){ data,res,err in let second = URLrequest(url: URL(String: "second")!) URLSession.shared.dataTask(with: second){ data,err in let third = URLrequest(url: URL(String: "second")!) URLSession.shared.dataTask(with:third){ data,err in }.resume() }.resume() }.resume()
PromiseKit PMKFoundation
import PromiseKit import PMKFoundation let session = URLSession.shared firstly { session.dataTask(with: URLrequest(url: URL(String: "first")!)) } .then { data in session.dataTask(with: URLrequest(url: URL(String: "second")!)) } .then { data in session.dataTask(with: URLrequest(url: URL(String: "third")!)) } .then { data -> () in // The data here is the data fro the third URL } .catch { error in // Any error in any step can be handled here }
使用1(且仅1)重试,您可以使用恢复.恢复就像捕获,但预计之前的那个可以重试.但是,这不是一个循环,只执行一次.
func retry(url: URL,on error: Error) -> Promise<Data> { guard error == MyError.retryError else { throw error } // Retry the task if a retry-able error occurred. return session.dataTask(with: URLrequest(url: url)) } let url1 = URL(String: "first")! let url2 = URL(String: "second")! let url3 = URL(String: "third")! let session = URLSession.shared firstly { session.dataTask(with: URLrequest(url: url1)) } .then { data in session.dataTask(with: URLrequest(url: url2)) } .recover { error in retry(url: url2,on: error) } .then { data in session.dataTask(with: URLrequest(url: url3)) } .recover { error in retry(url: url3,on: error) } .then { data -> () in // The data here is the data fro the third URL } .catch { error in // Any error in any step can be handled here }
注意:为了使这项工作不指定返回类型并需要一个return语句,我需要then然后恢复为1行.所以我创建了进行处理的方法.
以上是大佬教程为你收集整理的ios – 如何在Swift中优化链接异步请求全部内容,希望文章能够帮你解决ios – 如何在Swift中优化链接异步请求所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。