如题,Alamofire 如何将request添加到一个队列里面,顺序执行??
人生最曼妙的风景,竟是内心的淡定与从容!
使用 NSOperationQueue
创建一个 NSOperationQueue ,设置其 maxConcurrentOperationCount 为 1,这样就顺序执行了。
NSOperationQueue
maxConcurrentOperationCount
1
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 }];
信号阻塞也可以用,但是效率上要打一些折扣了,这样写应该很好理解了吧?
使用 NSOperationQueue
创建一个
NSOperationQueue
,设置其maxConcurrentOperationCount
为1
,这样就顺序执行了。好吧,我贴下代码吧
如果这个网络请求本身是异步的话,那加入现成队列肯定也会直接异步掉,直接执行下一个,是没法直接排队执行的。
所以你有两个个方法来处理,一个是可以用信号阻塞,另一个是可以在完成后,回调下一个操作,简而言之就是类似于
然后把 operation 全部放到一个 operations 数组中去
然后
信号阻塞也可以用,但是效率上要打一些折扣了,这样写应该很好理解了吧?