ios - Alamofire 如何将request添加到一个队列里面,顺序执行??
黄舟
黄舟 2017-04-18 09:33:38
[iOS讨论组]

如题,Alamofire 如何将request添加到一个队列里面,顺序执行??

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(3)
PHP中文网

使用 NSOperationQueue

伊谢尔伦

创建一个 NSOperationQueue ,设置其 maxConcurrentOperationCount1,这样就顺序执行了。

queue.addOperationWithBlock {
    manager.request(.GET, ...)
}
高洛峰

好吧,我贴下代码吧

如果这个网络请求本身是异步的话,那加入现成队列肯定也会直接异步掉,直接执行下一个,是没法直接排队执行的。

所以你有两个个方法来处理,一个是可以用信号阻塞,另一个是可以在完成后,回调下一个操作,简而言之就是类似于

 NSOperation *operation = [NSBlockOperation blockOperationWithBlock:^{ 
    //your request
}];

然后把 operation 全部放到一个 operations 数组中去

然后

 NSOperation *operation = [NSBlockOperation blockOperationWithBlock:^{ 
    //your request
    // success in your request--> callback next operation
    // fail in your request-->do something
}];

信号阻塞也可以用,但是效率上要打一些折扣了,这样写应该很好理解了吧?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号