美文网首页
简单粗暴的处理多个网络请求后合并处理

简单粗暴的处理多个网络请求后合并处理

作者: 大乐乐12 | 来源:发表于2018-04-14 23:42 被阅读0次

    OC版

        dispatch_group_t group = dispatch_group_create(); //创建一个组
    
        dispatch_group_enter(group);  //启动一个锁
        dispatch_group_enter(group);  //启动两个锁   (需要几个写几个)
        
        dispatch_group_notify(group, dispatch_get_main_queue(), ^{ // 等待完成通知 所有的锁leave之后调用这里
            
            NSLog(@"所有请求都完成了,爱干啥干啥");
        });
    
        [BMCLHttpManager httpDownloadWithUrl:kURL1 progress:nil successful:^(NSURL *filePath) {  //第一个请求
            
            dispatch_group_leave(group);  //第一个请求完成 退出锁
            
        } error:nil];
        
        [BMCLHttpManager httpDownloadWithUrl:kURL2 progress:nil successful:^(NSURL *filePath) {  //第二个请求
            
            dispatch_group_leave(group); //第儿个请求完成 退出锁
    
        } error:nil];
    

    swift版

            let group = DispatchGroup() //创建一个组
            
            group.enter()   //启动一个锁
            group.enter()   //启动两个锁   (需要几个写几个)
            
            group.notify(queue: DispatchQueue.main) { // 等待完成通知 所有的锁leave之后调用这里
                print("所有请求都完成了,爱干啥干啥")
            }
            
            netWork { (res) in      //第一个请求 (伪代码)
                
                group.leave()       //第一个请求完成 退出锁
            }
            
            netWork { (res) in      //第二个请求 (伪代码)
                
                group.leave()       //第儿个请求完成 退出锁
            }
    

    注意: enter 和 leave 是要成对出现的

    相关文章

      网友评论

          本文标题:简单粗暴的处理多个网络请求后合并处理

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