Objective-C的期货?

Fra*_*rar 16 concurrency objective-c

有没有人在Objective-C中实现期货?我(希望不天真地)假设将NSInvocations包装在一个漂亮的API中应该相当简单?

Cra*_*ney 8

PromiseKit似乎很受欢迎.这是我的崩溃期货库.还有 RXPromise.还有更多.

这三者之间的一些注释:

  • PromiseKit拥有Swift支持
  • 每个都可以通过CocoaPods安装.
  • 每一个都会自动将双重未来价值展平为单一未来价值.
  • 每个都是线程安全的.
  • RXPromise和PromiseKit就像JavaScript中的Promises/A +.
  • 它们在如何控制期货方面存在差异.在崩溃的期货中,有一个FutureSource,它有一个未来,而不是一个未来.在RXPromise和PromiseKit中,未来是它自己的源头.
  • 他们在取消未来的方式上有所不同.在RXPromise中,消费者呼唤cancel未来.在崩溃的期货中,生产者取消了它给未来方法的代币.我不知道PromiseKit的作用.
  • 所有方法都有出色的文档.

因为我写了它,所以我很偏向于崩溃期货,因此显然更喜欢它所做的设计决策.我认为保持控制分离是非常重要的,因为它有助于防止自我维持的参考周期(在JS中不是问题,但在使用块时绝对是Obj-C中的问题).我也认为取消令牌只会让事情变得更容易.另一方面,像一个众所周知的语言的知名规范表演将是非常好的.