vendredi 14 juillet 2017

What happens when ember's model hook's request fails

I have a typical scenario. My model hook for Route-1 looks something like this.

model() {
  return Ember.RSVP.hash({
    allProjects: this.store.findAll('post'),
    allUsers: this.store.findAll('author')
  });
 }

If I'm on Route-2 and navigate to Route-1 it will call the model hook. And if I already have data on my store, both the findAll requests are resolved, triggering RSVP.hash to resolve.

But if the request fails, I'm getting undefined error in my console (chrome).(twice for each of findAll) My error tracking system reports it as Unhandled promise error detected

the stack shows no relevant info either

defaultDispatch @ ember.debug.js:18008  
dispatchError @ ember.debug.js:17987  
onerrorDefault @ ember.debug.js:31634  
trigger @ ember.debug.js:58713  
(anonymous) @ ember.debug.js:59614  
invokeWithOnError @ ember.debug.js:346  
flush @ ember.debug.js:405  
flush @ ember.debug.js:529  
end @ ember.debug.js:599  
(anonymous) @ ember.debug.js:1165  

I am not able to figure out what is causing the error to be thrown because the promise findAll already got resolved. And ember tells me I have not handled the promise!

I tried putting catch/reject codes everywher but it never gets called. Because of course the promise was already resolved. So, it can not be rejected.

Then where is this error coming from!! I have no clue. There is no error till the adapter returns.

The only thing I could find was in my serializer normalizeFindAllResponse was not invoked whenever such failures happened.

Any help is greatly appreciated. Thanks!




Aucun commentaire:

Enregistrer un commentaire