我正在使用OperationQueue和Alamofire进行一系列网络请求。我在登录后第一次收到此错误。从第二次开始,此错误不会发生。以下是我的请求代码:
func request<T>(path:String,method:HTTPMethod , parameters:[String:String]? = nil,body:[String:Any]? = nil, completion:@escaping (Alamofire.Result<T>)->()) {
networkManager.request(url(path: path, params: parameters), method: method, parameters: body, encoding: JSONEncoding.default, headers: _authHeader)
.response { response in
if let networkResponse = response.response{
//Some Code Here
}else{
completion(response.error)
}
}
}
有趣的是,只有当我将 queue.maxConcurrentOperationCount 设置为1以外的其他内容时才会出现此错误。以下是我声明OperationQueue的代码
var fetchQueue:OperationQueue = {
var queue = OperationQueue()
queue.qualityOfService = .userInitiated
queue.name = "fetchQueue queue"
queue.maxConcurrentOperationCount = OperationQueue.defaultMaxConcurrentOperationCount
return queue
}()
从其他帖子中可以清楚地看到,由于另一个请求,第一个请求被取消。但为什么只有第一次?最新消息是什么?如果没有这个,我的网络请求将按顺序发送,而不是同时发送。