RxJs v7.0.0-beta.4 Release Notes

Release Date: 2020-08-02 // over 3 years ago
  • ๐Ÿ› Bug Fixes

    • ajax: Partial observers passed to progressSubscriber will no longer error (25d279f)
    • ajax: Unparsable responses will no longer prevent full AjaxError from being thrown (605ee55)
    • animationFrames: emit the timestamp from the rAF's callback (#5438) (c980ae6)
    • Ensure unsubscriptions/teardowns on internal subscribers are idempotent (#5465) (3e39749), closes #5464
    • โฑ timeout: defer error creation until timeout occurs (#5497) (3be9840), closes #5491

    ๐Ÿ”จ Code Refactoring

    • ajax: Drop support for IE10 and lower (0eaadd6)
    • Observable: Update property and method types (#5572) (144b626)

    ๐Ÿ”‹ Features

    • โœ… combineLatest: support for observable dictionaries (#5022) (#5363) (f5278aa)
    • โฑ TestScheduler: add an animate "run mode" helper (#5607) (edd6731)
    • โฑ timeout: One timeout to rule them all (def1d34)

    ๐Ÿ’ฅ BREAKING CHANGES

    • ajax: In an extreme corner-case... If an error occurs, the responseType is "json", we're in IE, and the responseType is not valid JSON, the ajax observable will no longer emit a syntax error, rather it will emit a full AjaxError with more details.
    • ajax: Ajax implementation drops support for IE10 and lower. This puts us in-line with other implementations and helps clean up code in this area
    • Observable: lift no longer exposed. It was NEVER documented that end users of the library should be creating operators using lift. Lift has a variety of issues and was always an internal implementation detail of rxjs that might have been used by a few power users in the early days when it had the most value. The value of lift, originally, was that subclassed Observables would compose through all operators that implemented lift. The reality is that feature is not widely known, used, or supported, and it was never documented as it was very experimental when it was first added. Until the end of v7, lift will remain on Observable. Standard JavaScript users will notice no difference. However, TypeScript users might see complaints about lift not being a member of observable. To workaround this issue there are two things you can do: 1. Rewrite your operators as outlined in the documentation, such that they return new Observable. or 2. cast your observable as any and access lift that way. Method 1 is recommended if you do not want things to break when we move to version 8.