PromiseKit кажется довольно популярным. Вот моя библиотека Collapsing Futures . Также есть RXPromise . И многое другое.
Некоторые примечания между этими тремя:
- PromiseKit имеет поддержку Swift
- Каждый может быть установлен через CocoaPods.
- Каждый из них автоматически сводит значения с двойным будущим в значения с однократным будущим.
- Каждый потокобезопасен.
- RXPromise и PromiseKit действуют как Promises / A + из JavaScript.
- Они отличаются тем, как контролируются фьючерсы. В рушащемся фьючерсе есть FutureSource, у которого есть будущее, а не будущее. В RXPromise и PromiseKit будущее - это собственный источник.
- Они отличаются тем, как отменяется будущее. В RXPromise потребитель звонит
cancel
о самом будущем. В коллапсирующих фьючерсах производитель отменяет токен , который он дал методу, который создал будущее. Я не знаю, что делает PromiseKit.
- Все они имеют отличную документацию по каждому методу.
Я склонен к разрушению фьючерсов, так как я написал это и так явно предпочитаю принятые дизайнерские решения. Я думаю, что держать контроль отдельно очень важно, потому что это помогает предотвратить самоподдерживающиеся эталонные циклы (не проблема в JS, но определенно проблема в Obj-C при работе с блоками). Я также думаю, что токены отмены просто делают вещи проще. С другой стороны, было бы неплохо вести себя как хорошо известная спецификация на известном языке.