繁体   English   中英

ReactiveCocoa和PromiseKit之间的主要区别是什么?

[英]What's the main difference between ReactiveCocoa and PromiseKit?

ReactiveCocoa使用RACSignal和PromiseKit使用Promise来包装值。 它们都可以将异步工作链接在一起。 ReactiveCocoa和PromiseKit之间的主要设计区别是什么?

signal和promise都是将异步操作表示为类型化的值的两种方法,这些类型的可以以回调/通知/代理无法传递的方式传递,链接,组合,嵌套等。

两者之间的差异就像正方形和矩形之间的差异一样,其中所有的承诺都是信号,但并非所有的信号都是承诺。 承诺是信号的一种特定用例。

信号表示由完成或失败终止的任何数量的异步事件的时间轴。 下图是所有可能的信号-任何数量的事件以失败或完成而结束

--------------------Event(eventData)-Completion()

--------------Completion()

Event(eventData)---------Event(eventData)----------Failure(errorData)

-------------------------------------Failure(errorData)

一个promise表示单个异步事件或单个异步故障。 下图表示可能的承诺:

-------Completion(eventData)

----------------------------------------------Completion(eventData)

--------Failure(errorData)

------------------------Failure(errorData)

如您可能已经看到的,任何promise都可以由在发送第一个Event之后立即发送Completion的信号来表示,如下所示:

-------Event(data)+Completion()

-------------------------------------------Event(data)+Completion()

--------Failure(errorData)

------------------------Failure(errorData)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM