当找不到记录时,Ember JS queryRecord不会触发错误状态

时间:2016-07-09 17:37:05

标签: ember.js

我在路线上有一个模型钩子,最后返回一个Promise,如:

return route.store.queryRecord(model, {username: params.username});

这很有效,除了它不会触发链中任何位置的“错误”操作。它正在获取404并在控制台中记录错误。

如果我将调用更改为“find”并且id不存在,则会抛出相同的404,但会调用转换为错误状态。由于几个原因,我不能使用查找。我错过了一些简单的东西吗?

使用ember 2.4。

1 个答案:

答案 0 :(得分:0)

看起来queryRecord无法捕获承诺中出现的错误,我们可以在此处看到:https://github.com/emberjs/data/blob/v2.5.3/addon/-private/system/store/finders.js#L194

在这种情况下你可以做的是将对store.query的调用封装在你将在你的路由模型钩子中返回的Promise中,分析store.query的结果,如果得到404,则拒绝封装的Promise。