RxJs stops listening to click events when an inner observable errors (Ajax request). I\'m trying to figure out how to keep the event listener hooked to the button click even
I was still a little confused after trying the accepted answer, so this is what ended up working for me. This is what I had:
Rx.Observable.fromEvent(emitter, events.SUBMIT_EVENT)
.flatMapFirst(email=>{
return $.ajax({
method: "POST",
url: '/email',
data: {
email: email
},
}).promise()
})
.subscribe(response=>{
if (response) {
//do your success thing here
}
},
error =>{
//do your error thing
}
)
When the server returned an error (like when the user already entered their email) I wasn't able to listen for the user's email form submit again. This is what worked for me:
Rx.Observable.fromEvent(emitter, events.SUBMIT_EVENT)
.flatMapFirst(email=>{
return $.ajax({
method: "POST",
url: '/email',
data: {
email: email
},
}).promise()
})
.doOnError(error=> {
//do your error thing here
})
.retry()
.subscribe(response=>{
if (response) {
//do your success thing here
}
})