У меня есть настраиваемый сеанс Alamofire, настроенный следующим образом:
class Networking {
let session: Session?
let rootQueue = DispatchQueue(label: "com.app.session.rootQueue")
let requestQueue = DispatchQueue(label: "com.app.session.requestQueue")
let serializationQueue = DispatchQueue(label: "com.app.session.serializationQueue")
init() {
newBrowserTokenProvider = NewBrowserTokenProvider()
let interceptor = TokenRequestInterceptor()
session = Session(rootQueue: rootQueue,
requestQueue: requestQueue,
serializationQueue: serializationQueue,
interceptor: interceptor)
}
}
Однако при вызове запроса я должен предоставить очередь в качестве аргумента для закрытия ответа. Если я этого не сделаю, очередь, установленная на уровне сеанса (ожидается, что это «requestQueue»), не будет использоваться.
Например,
Не работает
session?.request("https://people.googleapis.com/v1/people/me",
parameters: parameters).response { response in
}
Работает:
session?.request("https://people.googleapis.com/v1/people/me",
parameters: parameters).response(queue: requestQueue) { response in
}