问题:一个页面有多个请求,拿到所有请求结果后去刷新页面。
1.多个请求并发
2.多个请求顺序请求
我最开始的做法是嵌套请求:
[self request4sPartnerRebateCountQueryCompletionBlock:^(NSError *error) { @strongify(self); if (!error) { [self requestLoanPartnerRebateCountQueryCompletionBlock:^(NSError *error) { if (block) { block(error); } }]; }else { if (block) { block(error); } } }];
思考了一下这样做的不足之处:
1.请求如果多了,需要写许多嵌套的请求
2.请求变成同步的,在网络差的情况下,如果有n个请求,意味着用户要等待n倍请求的时间
为了解决以上问题,寻求更优的方式去了解一下多线程对这个问题的解决方式:
//多个请求结束后统一操作 用group实现
enter和leave必须配合使用,有几次enter就要有几次leave,否则group会一直存在。当所有enter的block都leave后,会执行dispatch_group_notify的block。
- (void)group:(void(^)(NSError * error))bloc