Reactive-Extensions / RxJS-DOM

HTML DOM Bindings for the Reactive Extensions for JavaScript
http://reactivex.io
Other
437 stars 99 forks source link

unable to handle JSON.parse errors #122

Open shakyShane opened 8 years ago

shakyShane commented 8 years ago

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.

IvanJov commented 6 years ago

This is still an issue in RxJS 5.

paulpdaniels commented 6 years ago

@IvanJov RxJS 5 isn't maintained here.

IvanJov commented 6 years ago

Yes, I know 😜 Just mentioning that this is still a problem, even in the newest version.