使用场景
- 一般我们某个界面需要请求多个接口请求,
并在全部接口请求成功后
,
进行界面的刷新。
-为了不在某个接口成功回调中,再请求另外的接口,(感觉后期出现无限回调)。
框架 PromiseKit,可以帮助我们。-objc版本
pod "PromiseKit", "~> 1.7.4"
列如 PMKPromise 中 when
语法
/// 4个request方法都走
[PMKPromise when:@[[self oneRequest],[self twoRequest],[self threeRequest],[self fourRequest]]].then(^( id reObjec1,
id reObjec2,
id reObjec3,
id reObjec4){
NSLog(@"四个请求都成功,才这里");
}).catch(^ (NSError *error) {
NSLog(@"其中任何一个request失败,都走这里");
}).finally(^{
});
列如 Request其他一个请求方法
- (PMKPromise *)oneRequest {
return [PMKPromise promiseWithResolver:^(PMKResolver resolve) {
NSString *url = @"xxxxxxxxxxxxxxxxxx";
[[AFHTTPSessionManager manager] POST:url parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
NSLog(@"");
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
resolve(responseObject);
NSLog(@"请求成功");
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"报错");
}];
}];
}
- (PMKPromise *)twoRequest {....}
- (PMKPromise *)threeRequest {....}
- (PMKPromise *)fourRequest {....}
网友评论