前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >I Promise You

I Promise You

作者头像
大话swift
发布2019-07-04 11:18:08
4920
发布2019-07-04 11:18:08
举报
文章被收录于专栏:大话swift大话swift

讲故事:

?‍♀️:待我长发及腰你娶我可好

?:I Promise You

?‍♀️:

PromiseKit是一个简易的异步框架,让你更加自如的将精力集中去处理更加重要的事情上。PromiseKit是一个更加易学,更加容易掌控并且结果思路更加清晰,更代码易读的优雅框架

Promises simplify asynchronous programming, freeing you up to focus on the more

important things. They are easy to learn, easy to master and result in clearer,

more readable code.

基本概念

firstly:初始化一个Promise

firstly {

Promise.value(1)

}

done

when:几个Promise何时完成,返回结果, 效果就是.barrier

when(resolved: Promise.value(1),Promise.value(2)).done { (results:[Result<Int>]) in

}

then:是响应链的串联节点

firstly{

Promise.value(1)

}.then { (a:Int) -> Promise<Int> in

return Promise.value(a*2)

}.done { (va:Int) in

print(va)

}

race:比赛之意只要有一个实现即代表完成,与```when```形成对应

race(p1,p2).done{ _ in

}

有人总结的好(大意):

PromiseKit将我们从OC Swift中的多层级的```callBack```方式中拯救出来,是整个过程更加层级化,代码更易于读取。```但是```屏蔽了内部的实现细节和失去了代码的逻辑性

简单实战

我们使用Alamofire进行请求

按照 请求数据 =》 解析数据 =》绑定数据 =》完成登陆

我们看一下整体login的

@IBAction func login(_ sender: Any) {

firstly{

login()

}.then { (json:Any) -> Promise<Void> in

return self.bindToText(json: json)

}.done { _ in

print("finish")

}

}

按照上面我们可以省去大量的block回调,是思路更加清晰:

请求登录 =》 绑定到UI =》 完成

整体流程按照链式一气呵成

然后让我们看看整体

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大话swift 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档