Reactive Extensions v2.2.24
This is another minor release of the Reactive Extensions for JavaScript which contains mostly bug fixes as we move towards version 2.3. This release includes some great stuff including a complete build (minus the testing), RxJS Lite Extras, and some fixes to behaviors such as with finally
.
RxJS Complete Build
One feature that was requested often was to have a complete build of all RxJS operators in a single file, so that you don't have to hunt down which file contains the desired operator. This is good for prototyping where you are undecided about which operators you are going to use. Later on, you may decide you may need only a subset which might be only in rx.lite.js
. The only parts that are not included in this file are for testing, which you can easily reference yourself.
To that end, we now ship rx.all.js
for modern browsers and rx.all.compat.js
for older browsers.
RxJS Lite Extras
Another requested feature was for the ability to include the operators that were included in the main rx.js
file, but not included in rx.lite.js
. We have created rx.lite.extras.js
which contains the missing operators, which makes including other files such as rx.joinpatterns.js
, rx.coincidence.js
or others easier without worrying if something is missing.
The following operators included are:
Observable Methods
Observable Instance Methods
amb
bufferWithCount
distinct
groupBy
groupByUntil
observeOn
onErrorResumeNext
subscribeOn
windowWithCount
Finally Behavior Fix
An issue was brought to our attention that if the subscribe is empty and an exception is thrown, the finally
will not be called because there was no try/catch around the subscribe
call. Below was the previous behavior which would not call the finally
.
Rx.Observable.throw(new Error())
.finally(function () { /* never would be hit */ })
.subscribe();
// Error thrown
This has been corrected so we now get the expected behavior:
Rx.Observable.throw(new Error())
.finally(function () { console.log('finally'); })
.subscribe();
// => finally
// Error thrown
Removal of rxjs Node.js Module
A point of confusion was the existence of the rxjs
Node.js module, which confused many as the official supported module is rx
. We have since contact the author and it has been removed.
Closed Issues
- #168: Error: Cannot find module './rx.all' on Node.js
- #167: Fix data binding example
- #166: rx.js throws exception when used in web worker
- #165: Update observable.md
- #164: fix broken anchor links: shareValue/shareReplay
- #163: fix broken anchor link on concatAll
- #162: correct broken anchor link to mergeAll
- #161: correct pausableBuffered docs
- #160: s/teh/the/
- #159: correct typo in
last
docs - #158: correct typo in lastOrDefault docs
- #156: warn against 'npm install rxjs' 3rd party version
- #154: Move compiled output to dist to clean up main folder
- #153: Create extras build for lite
- #152: Create all build
- #151 Add an asyncMap that will map an async operator over an Observable
- #147: Corrected minor spelling mistakes.
- #146: finallyAction does not happen when there is an error