首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当Ember-数据存储区找不到任何记录时,如何处理错误/事件?

问当Ember-数据存储区找不到任何记录时,如何处理错误/事件?
EN

Stack Overflow用户
提问于 2014-11-10 01:50:55
回答 1查看 597关注 0票数 0

情况是:

  • session.userID有一个正确的ID
  • 但是,后端数据库(Firebase)中没有用户数据。

以下是代码:

代码语言:javascript
复制
App.ApplicationRoute = Ember.Route.extend({
  model: function() {
    if (this.session.userID) {
      return this.store.find('user', this.session.userID).then(function(_user) {
        console.log('user found', _user);
        return _user;
      }, function(error) {
        // user does not exist or some other error
        console.log('Application Model did not find user in Firebase');
        return null;
      });
    } else {
      console.log('Application Model did not find any session.userID');
      return null;
    }
  },

}); 

我的期望: Promisse应该调用错误函数:

代码语言:javascript
复制
function(error) {
  // user does not exist or some other error
  console.log('Application Model did not find user in Firebase');     
});

错误:,但是,我得到以下错误:

代码语言:javascript
复制
    Error: no record was found at https://dynamicslife.firebaseio.com/users/facebook%3A931321683548734
        at https://cdn.firebase.com/libs/emberfire/1.2.7/emberfire.min.js:10:3400
        at c (https://cdn.firebase.com/js/client/1.1.2/firebase.js:17:65)
        at https://cdn.firebase.com/js/client/1.1.2/firebase.js:123:689
        at uc (https://cdn.firebase.com/js/client/1.1.2/firebase.js:50:20)
        at Xe (https://cdn.firebase.com/js/client/1.1.2/firebase.js:123:675)
        at Ve.Vb (https://cdn.firebase.com/js/client/1.1.2/firebase.js:123:617)
        at Ye.Vb (https://cdn.firebase.com/js/client/1.1.2/firebase.js:124:418)
        at https://cdn.firebase.com/js/client/1.1.2/firebase.js:139:409
        at https://cdn.firebase.com/js/client/1.1.2/firebase.js:68:878
        at pc (https://cdn.firebase.com/js/client/1.1.2/firebase.js:62:618) ember.js:14876
    Uncaught Error: Assertion Failed: Error: no record was found at https://dynamicslife.firebaseio.com/users/facebook%3A931321683548734 

问题:我知道没有任何记录可以找到。但是如何处理这种情况,避免被抛出错误呢?我的印象是,这个承诺将允许我在系统崩溃之前管理错误。

EN

回答 1

Stack Overflow用户

发布于 2014-11-10 17:59:11

代码语言:javascript
复制
App.ApplicationRoute = Ember.Route.extend({
  model: function() {
    if (this.session.userID) {
      return this.store.find('user', this.session.userID);
    } else {
      console.log('Application Model did not find any session.userID');
      return null;
    }
  },
  afterModel: function(user, transition) {
    if (user.get('length') === 0) {
      console.log('fail');
    } else {
      console.log('success');
    }
  }
});

请参阅afterModel

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26835568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档