美文网首页
Swift 顺序执行请求网络数据

Swift 顺序执行请求网络数据

作者: 善良的karl | 来源:发表于2019-08-24 21:39 被阅读0次

    现实的iOS开发中,经常会遇到一个控制器有多个网络请求的情况,而这些网络请求我们又需要控制一下返回的先后顺序。比如说请求任务一成功以后,需要拿到任务一的数据去请求任务二,再拿到任务二请求的数据去请求任务三,此时,就需要控制一下网络请求的返回顺序。经过查找资料,我现在采用添加队列任务的方式来实现。代码如下

    import UIKit
    
    class ViewController: UIViewController {
        //定义一个全局的主队列变量
        let group = OperationQueue.main
    
        override func viewDidLoad() {
            super.viewDidLoad()
            //向队列里面添加第一个请求任务
            group.addOperation(request1())
            print("------------")
        }
        //第一个请求任务
        func request1() -> BlockOperation{
            let request = BlockOperation {
                /**
                 这里写第一个网络请求方法
                 */
                //第一个请求完成以后向队列里面添加任务2
                print("我是任务---1")
                print(Thread.current)
                self.group.addOperation(self.request2())
            }
            return request
        }
        //第二个请求任务
        func request2()  -> BlockOperation {
            let request = BlockOperation {
                /**
                 这里写第二个网络请求方法
                 */
                //第二个请求完成以后向队列里面添加任务3
                print("我是任务---2")
                print(Thread.current)
                self.group.addOperation(self.request3())
            }
            return request
        }
        //第三个请求任务
        func request3() -> BlockOperation {
            let request = BlockOperation {
                /**
                 这里写第三个网络请求方法
                 */
                print("我是任务---3")
                print(Thread.current)
            }
            return request
        }
    }
    
    

    本人刚开始学习swift语言,如果写的有不合适的地方,请各位大神进行批评指正哈。

    相关文章

      网友评论

          本文标题:Swift 顺序执行请求网络数据

          本文链接:https://www.haomeiwen.com/subject/acxqectx.html