Bluebird.swift
follows Semantic Versioning
- Support async/await with
Promise.value()
- Support Combine framework with new
.publisher()
method
- Built with Swift 5.0
- Built with Swift 4.2
- On iOS 10+ and macOS 10.12+ the locking mechanism for
Promise
is backed byos_unfair_lock
bringing a significant performance improvement. On prior versions of iOS and macOS the locking mechanism falls back to a serialDispatchQueue
- Expose a new
Lock
class that hides the implementation detail of the underlying lock, preferringos_unfair_lock
when available, and falling back to a serialDispatchQueue
when it's not.
- Add
Promise.cancel
- Add
Promise { resolve, reject, onCancel in }
- Bad release - see v2.4.0
- Add
Promise.tapCatch
- Add
Promise.return
- Support CocoaPods v1.4.0
- Support Swift Package Manager
- Hosted documentation generated with Jazzy
- Add missing Foundation imports for Swift Package Manager
- Swift 4 and Xcode 9
- Renamed
catchThen
torecover
- Added Promise/A+ test suite
- Swift 3.1
- QOS on internal state queue
- Open
Promise
class
- Better state handling using the sync queue. Fixes any issues I found in Xcode 8's Thread Sanitizer.
- Introduce
Promise.catchThen
to recover from a rejection with another result of the same type
- Add
Promise.delay
for delaying the execution of a Promise chain - Add
Promise.timeout
to reject a Promise if it does not resolve in a given amount of time
- Add
Promise.reflect
for returning a Promise that will always resolve - Add
Promise<Type>.defer
for returning a resolver tuple that can be used to resolve a Promise outside of the default constructors
- Add
Promise.map
andPromise.mapSeries
, identical to the globalmap()
andmapSeries()
, but can be chained on an existing Promise that resolves to a sequence - Add
Promise.reduce
, identical to the globalreduce()
, but can be chained on an existing Promise that resolves to a sequence - Rename
map(series:)
tomapSeries
for API consistency
- Add targets for all platforms: iOS, macOS, tvOS, watchOS
- Fix incorrect dispatch queue usage in
all
- Add
reduce
function to iterate over a sequence and resolve to a single value
- Support generic sequence types in
map
,all
,any
,race
- Add a
(on:queue)
parameter to all functions. Defaults to.main
- Add a
try
function for beginning a Promise chain
- A much cleaner, more readable implementation of
map(series:)
- Map over a collection that resolves each promise in series
- Fixes on API inconsistency where
finally
did not have theon
argument name
- Add full test coverage for every Promise function
- Convert static Promise functions (all, any, join, map) to be free standing functions because we can't add static functions on a generic class...
- No API was added/changed in this release
- 100% documented
Todo: Unit tests! Those are next, top priority.
Initial release. Full documentation can be found on CocoaDocs