我在路线上有一个模型钩子,最后返回一个Promise,如:
return route.store.queryRecord(model, {username: params.username});
这很有效,除了它不会触发链中任何位置的“错误”操作。它正在获取404并在控制台中记录错误。
如果我将调用更改为“find”并且id不存在,则会抛出相同的404,但会调用转换为错误状态。由于几个原因,我不能使用查找。我错过了一些简单的东西吗?
使用ember 2.4。
答案 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。