[英]What's the difference between textField delegate and using textSignal in ReactiveCocoa?
[英]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.