ReactiveSwift v3.1.0-rc.1 Release Notes

Release Date: 2017-12-22 // over 6 years ago
  • ๐Ÿš€ This is the first release candidate of ReactiveSwift 3.1. It supports Swift 3.2 and Swift 4.0.

    ๐Ÿ›  Bugfix

    ๐Ÿ›  Fixed a scenario of downstream interruptions being dropped. (#577, kudos to @andersio)

    Manual interruption of time shifted producers, including delay, observe(on:), throttle, debounce and lazyMap, should discard outstanding events at best effort ASAP.

    But in ReactiveSwift 2.0 to 3.0, the manual interruption is ignored if the upstream producer has terminated. For example:

    // Completed upstream + `delay`.SignalProducer.empty .delay(10.0, on: QueueScheduler.main) .startWithCompleted { print("Value should have been discarded!") } .dispose()// Console(t+10): Value should have been discarded!
    

    โช The expected behavior has now been restored.

    โฑ Please note that, since ReactiveSwift 2.0, while the interruption is handled immediately, the interrupted event delivery is not synchronous โ€” it generally respects the closest asynchronous operator applied, and delivers on that scheduler.

    โž• Addition

    ๐Ÿšฆ 1. SignalProducer.concat now has an overload that accepts an error. (#564, kudos to @nmccann)

    ๐Ÿ”„ Change

    ๐Ÿ“š 1. Fix some documentation errors (#560, kudos to @ikesyo)