美文网首页
iOS_ObjeC ---- PromiseKit

iOS_ObjeC ---- PromiseKit

作者: 叶舞清风 | 来源:发表于2019-05-12 21:01 被阅读0次
使用cocospod 导入PromiseKit第三方框架
项目导入之前需要设置一下swift版本4.2,因为框架是ObjeC和Swift通用的
设置swift第一步.png 设置swift第二步.png PromiseKit.png

然后在需要导入的地方:


屏幕快照 2019-05-12 下午8.59.39.png

然后就可以使用了:

屏幕快照 2019-05-12 下午9.00.57.png
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    // 一步一步调用方法
    [self first:@"111"].then(^(NSString *m){
        NSString *message = @"222";
        return [self second:message];
    }).then(^(NSString *mess){
        return [self three:mess];
    }).catch(^(NSError *error){
        NSLog(@"%s error: %@",__PRETTY_FUNCTION__ ,error);
    });
    
}

- (AnyPromise *)first:(NSString *)message
{
    
    AnyPromise *promise = [AnyPromise promiseWithResolverBlock:^(PMKResolver _Nonnull resolve) {
        NSLog(@"%s message:%@",__PRETTY_FUNCTION__,message);
        if ([message isEqualToString:@"111"]) {
            resolve(message);
        }else{
            NSError *error = [NSError errorWithDomain:@"" code:1 userInfo:@{NSLocalizedDescriptionKey:@"111参数有误"}];
            resolve(error);
        }
    }];
    
    return promise;
}

- (AnyPromise *)second:(NSString *)message{
    AnyPromise *promise = [AnyPromise promiseWithResolverBlock:^(PMKResolver _Nonnull resolve) {
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(10 *NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            NSLog(@"%s message:%@",__PRETTY_FUNCTION__,message);
            if ([message isEqualToString:@"222"]) {
                resolve(nil);
            }else{
                NSError *error = [NSError errorWithDomain:@"" code:1 userInfo:@{NSLocalizedDescriptionKey:@"222参数有误"}];
                resolve(error);
            }
        });
        
    }];
    
    return promise;
}

- (AnyPromise *)three:(NSString *)message{
    AnyPromise *promise = [AnyPromise promiseWithResolverBlock:^(PMKResolver _Nonnull resolve) {
        NSLog(@"%s message:%@",__PRETTY_FUNCTION__,message);
        if ([message isEqualToString:@"333"]) {
            resolve(message);
        }else{
            NSError *error = [NSError errorWithDomain:@"" code:1 userInfo:@{NSLocalizedDescriptionKey:@"333参数有误"}];
            resolve(error);
        }
    }];
    
    return promise;
}

相关文章

  • iOS_ObjeC ---- PromiseKit

    然后在需要导入的地方: 然后就可以使用了:

  • 讨厌使用block嵌套了吗,试试promisekit

    http://promisekit.org

  • PromiseKit 概要

    对PromiseKit理解 PromiseKit 只是 Promise 设计模式的一种实现方式。并不能为我们的 a...

  • Objective-C 之 PromiseKit入门

    一、PromiseKit介绍 PromiseKit,优雅的的管理多个异步操作,让你从此远离多层嵌套。 用一个例子作...

  • PromiseKit

    Promises simplify asynchronous programming, freeing you u...

  • swift PromiseKit入门 - promise war

    PromiseKit是个啥 官方描述: Promises simplify asynchronous progra...

  • PromiseKit 使用

    看到这样的代码你的内心应该是一万匹草泥马跑过了吧! 你内心的代码肯定应该是这样的 她优雅,干净,易懂。如同初恋一般...

  • PromiseKit 附录

    全部文章简介基础部分快速上手Promise 的常见模式常见问题进阶部分故障排除附录API 说明 以下是对 Prom...

  • PromiseKit 简介

    全部文章简介基础部分快速上手Promise 的常见模式常见问题进阶部分故障排除附录API 说明 以下是对 Prom...

  • 链接

    https://github.com/mxcl/PromiseKit https://github.com/Rea...

网友评论

      本文标题:iOS_ObjeC ---- PromiseKit

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