Maison > Questions et réponses > le corps du texte
如题,Alamofire 如何将request添加到一个队列里面,顺序执行??
伊谢尔伦2017-04-18 09:35:38
Créez un NSOperationQueue
et définissez son maxConcurrentOperationCount
sur 1
afin qu'il soit exécuté séquentiellement.
queue.addOperationWithBlock {
manager.request(.GET, ...)
}
高洛峰2017-04-18 09:35:38
D'accord, laissez-moi poster le code
Si la requête réseau elle-même est asynchrone, alors rejoindre la file d'attente prête à l'emploi sera certainement directement asynchrone et l'exécution directe de la suivante ne peut pas être directement mise en file d'attente pour l'exécution.
Vous avez donc deux méthodes pour y faire face. L'une consiste à bloquer avec un signal et l'autre consiste à rappeler l'opération suivante une fois terminée. En bref, c'est similaire à
. NSOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
//your request
}];
Ensuite, mettez toutes les opérations dans un tableau d'opérations
Alors
NSOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
//your request
// success in your request--> callback next operation
// fail in your request-->do something
}];
Le blocage du signal peut également être utilisé, mais l'efficacité sera compromise. Cela devrait être facile à comprendre lorsqu'il est écrit comme ceci, n'est-ce pas ?