年后回来上班有一段时间了,刚刚有些时间研究些东西。最近因为项目需要 对于函数化编程了解了一下,发现细思级恐啊。函数化编程已经提出了很久的一个概念,google 翻墙可以看到,好多相关的论文和博客,论文以各种方面论述了函数化变成的优劣,我个人感觉是 结构化不明确,可是逻辑上很明确。当然我研究的还不够深入,有待后续更多的实践。
PromiseKit 是一个比较简单的函数化集成第三方库,让 oc 或者 swift 能够更容易的实现函数化编程。这点和 Rx 或者 RAC有着更好的代码复杂度。
gitHub 上的地址是
如果是 oc 编程或者用它写第三方的 lib 那么你用1.6 就够了
swift 变换比较大,目前还是不停的折腾中
1.代码篇
情景一
比如你写两个登录,那么登录后的操作可能有 下一个网络请求,比如用户信息的请求
那么这个时候可以这样
[TTCommonApi promiseLoginWithMobile:self.userNameTextField.text authCode:self.passwordTextField.text].then(^(id response){
//主线程
NSString *ticket = response[@"ticket"];
NSDictionary *claims = [TTSignatureHelper decodeClaimsFromJWT:ticket];
long long userId = [claims[@"uid"] longLongValue];
[TTCommonApi promiseGetUserInfoWithId:@(userId)].then(^(id response) {
NSLog(@"success get user info %@",response);
}).catch(^(TTError *error) {
NSLog(@"error is %@ ",error);
});
}).catch(^(TTError *error) {
NSLog(@"error is %@ ",error);
});
总结
代码简单易懂没有 RAC 或者 RX上手时间长的困恼
支持 Swift
底层简单可编程的性强
缺点也是优点,还不够强大。类别稀少,要自己的写代码还是很多。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!