VSPromise 1.0.1

VSPromise 1.0.1

Viacheslav Soroka 维护。



VSPromise 1.0.1

  • Viacheslav Soroka

VSPromise

简单的轻量级 Objective-C promises。

特点

  • 自动内存管理。您可以将 promise 存储在弱变量中,也可以完全不存储,一旦解析将自动释放
  • 任何长度的链
  • 结果转换
  • 线程安全

安装

VSPromise 支持两种方法将之安装到项目中。

使用 CocoaPods 安装

要将 VSPromise 集成到您的 Xcode 项目中,请使用 CocoaPods 在您的 Podfile 中指定它

target 'TargetName' do
    pod 'VSPromise'
end

然后,运行以下命令

$ pod install

使用“拖放”安装

只需将“源”文件夹中的文件复制到您的项目中,并将它们添加到您的目标中即可。

使用说明

基本使用方法

VSPromise *promise = ...;
promise.then(^id(id result) {
    // `result` is a result of previous promise
    ...

    return somePromise;
})
.then(^id(id result) {
    // You can instert any number of `then` blocks and return promise or nil

    return somePromise;
})
.fail(^id(NSError *error) {
    // This block will be called, if you get and error in any previous `then` block
    
    return nil;
})
.finaly(^{
    // This block will be called after all then or fail blocks.
});

如何在异步方法中使用Promise

- (VSPromise *)someAsyncMethod:(id)params
{
    VSPromise *promise = [VSPromise promise];
    [self someAsyncMethodWithCompletion:^(id result, NSError *error) { 
        if (!error) {
            [promise resolve:result];
        }
        else {
            [promise reject:error];
        }
    });

    return promise;
}

结果转换

VSPromise *promise = ...;
[promise map:^NSURL *(NSDictionary *json) {
    NSString *path = json[@"url"];
    
    return path.length ? [NSURL URLWithString:path] : nil;
}];

许可

VSPromise遵循MIT许可协议。更多信息请参阅LICENSE文件。