![](/img/trans.png)
[英]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.