网上搜了一堆资料,但是都没有真正实现同步,所以自己研究了一下,分享给大家
Alamofire所有请求都是异步执行,所以想要实现同步,办法就是加个循环等等即可
private func requestUrl(url:String, isPost:Bool) ->Any{
vardata:Any=""
letrequest:DataRequest=self.getDataRequest(url: url, isPost: isPost)
request.responseJSON(queue:DispatchQueue.main, options: .allowFragments, completionHandler: { (response)in
data = response.result.value;
})
while String(describing: data).count== 0 {
print("等待data有值")
RunLoop.current.run(mode: RunLoopMode.defaultRunLoopMode, before: Date.distantFuture)
}
return data
}
}









网友评论