Swift筆記: 多個 Alamofire request 同步 Sync(依序) 執行

2017110518:12





多個 http request,但希望各個 request 能依序、同步Sync 執行 ,而不要 非同步Async 執行

例如我希望第一個 request 取的 server 給的 id 後,
後面其它的 upload request 都要帶入(post/get) 此 id


利用雙層 DispatchGroup
 
var id:Int  = 0

let group1 = DispatchGroup()

group1.enter()
Alamofire.request("https://www.abc.com/getid").responseJSON { response in
       print("接收回應資料")
       
        *** 取server回應的 id = xxx
    
       group1.leave()
}

group1.notify(queue: DispatchQueue.main) {
    
    let group2 = DispatchGroup()
    
    Alamofire.request("https://www.abc.com/upload?id=\(id)").responseJSON { response in

        print("接收回應資料")
        group2.leave()
    }
    

    group2.notify(queue: DispatchQueue.main) {
        
    }//group2 結束
    
    
    
} //group1 結束