JSON.parse can throw, but the way in which it's called in https://github.com/Reactive-Extensions/RxJS-DOM/blob/master/src/ajax/ajax.js#L40 means it's impossible to handle this error gracefully which completely breaks composition.
Shouldn't you be try/catching things that may throw inside the subscribeCore?
This is unexpected :
Rx.DOM.post({
url, // let's say the response body contains invalid json
responseType: 'json',
body: ''
}).catch(err => {
// Cannot handle the JSON.parse error here
});
The following should be possible
Rx.DOM.post({
url,
responseType: 'json',
body: ''
}).catch(error => Rx.Observable.just({type: 'AJAX_ERROR', data: {error}}))
Currently, the error will bubble up and crash your program.