Ember.js 当余烬';s型挂钩&x27;s的请求失败
我有一个典型的场景。 我的Ember.js 当余烬';s型挂钩&x27;s的请求失败,ember.js,ember-data,ember-cli,Ember.js,Ember Data,Ember Cli,我有一个典型的场景。 我的Route-1模型挂钩看起来像这样 model() { return Ember.RSVP.hash({ posts: this.store.findAll('post'), authors: this.store.findAll('author') }); } 如果我在Route-2上并导航到Route-1,它将调用模型挂钩。 如果我的存储中已有数据,则会解析findAll请求,并触发RSVP.hash进行解析 但是如果请求失败,我的控制台
Route-1
模型挂钩看起来像这样
model() {
return Ember.RSVP.hash({
posts: this.store.findAll('post'),
authors: this.store.findAll('author')
});
}
如果我在Route-2
上并导航到Route-1
,它将调用模型
挂钩。
如果我的存储中已有数据,则会解析findAll
请求,并触发RSVP.hash进行解析
但是如果请求失败,我的控制台(chrome)就会出现undefined
错误。(findAll各两次)
我的错误跟踪系统将其报告为检测到的未处理承诺错误
堆栈也没有显示相关信息
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
我无法找出引发错误的原因,因为promisefindAll
已得到解决。余烬告诉我,我没有履行诺言
我试着把捕获/拒绝代码放在每个人身上,但它从来没有被调用过。因为承诺当然已经解决了。因此,它不能被拒绝
那么这个错误是从哪里来的!!我不知道。在适配器返回之前没有错误
我能找到的唯一东西是在我的序列化程序normalizeFindAllResponse
中,每当发生此类故障时,都不会调用它
非常感谢您的帮助。谢谢 我不知怎么解决了这个问题 之前,在我的适配器中,我拒绝使用Promis的reasonobject的承诺。 现在,在错误响应的情况下,我宁愿发送一个包含
errors
数组的对象,而不是失败原因对象。
因此,对象将作为有效负载传递给序列化程序中的mynormalizeFindAllResponse
。在那里,我检查有效载荷
参数中是否存在错误
数组。
如果存在这样的对象,那么只需将data
属性设置为空数组的空对象返回即可
注意:您可能需要查找用于加载
post
和author
模型的ADGater和序列化程序,以查找潜在错误。堆栈跟踪错误是否有可扩展的选项?因为它实际上没有提供任何线索,我检查了一下。没有错误。适配器只发送它得到的内容(在本例中,拒绝原因
)。至于堆栈跟踪,调用错误的是'ember'代码。没有相关信息,我可以担保。你能检查你的服务器响应吗?它是一个有效的json吗?@ykaragol是的,它有一个json响应。我的适配器的承诺处理程序已成功执行。在适配器返回后,控制台中会抛出一个没有相关信息的错误。它只是说未定义
和上面的堆栈跟踪。