101:Alamofire和PromiseKit

使用Alamofire执行异步请求时。 您的代码看起来像这样吗?

好吧,那很好,但是可以更好。 怎么样? 承诺!

承诺

Promise简化了异步编程,您可以在其中基于事件编写代码。 这样可以使您的代码更简洁,可读性更好。 它还将帮助您减少特别是在处理异步请求时以很多委托或复杂的完成处理程序结尾的可能性。

在本文中,我将使用PromiseKit这个建议中使用的流行Swift库。

许诺是代表异步任务的对象。 传递该对象,并编写整洁,有序的代码; 从一个异步任务到另一个异步任务的逻辑,简单,模块化的流。

资料来源:http://promisekit.org/docs/

一个Promise有一个then块,就像一个onSuccess完成处理程序。 它还有一个catch块,将错误处理与您的主代码路径分开,就像onFailure完成处理程序一样。

我们将在开始时使用相同的示例将请求与承诺包装在一起,它看起来像这样:

使用基于PromiseKit版本的代码示例

现在您可以像这样使用它:

如您所见,不需要定义委托或完成处理程序,我们利用PromiseKit的then块和catch块分别处理有效响应和错误。

注意:在最新的PromiseKit版本中, then被分为thendonemap 。 有关更多信息,请查看PromiseKit 6发行说明。

我知道Promise真是太棒了!但是,在您开始采用PromiseKit之前,我强烈建议您慢慢使用它,并在其“入门指南”或他们的网页中阅读有关此库的更多信息。 然后,当您感到舒适时,才开始用promise打包所有异步请求。

愿原力与你同在…

(我最近看过《星球大战:最后的绝地武士》,我被炒作了……让我成为吧)


我希望您喜欢这篇文章,并且总体上觉得它很有用。 并且不要犹豫,留下反馈或任何问题。 谢谢!