javascript - 连接丢失时适配器错误

标签 javascript ember.js ember-data

当我的应用程序失去互联网连接时,我收到来自适配器的错误,但我不确定它为什么会这样做。

Error: Adapter operation failed
    at new Error (native)
    at Error.EmberError (http://localhost:5966/assets/vendor.js:25883:21)
    at Error.ember$data$lib$adapters$errors$$AdapterError (http://localhost:5966/assets/vendor.js:66151:50)
    at ember$data$lib$system$adapter$$default.extend.handleResponse (http://localhost:5966/assets/vendor.js:67455:16)

我的应用程序适配器如下所示:

export default DS.JSONAPIAdapter.extend(DataAdapterMixin, {
    host: config.apiUrl,

    handleResponse(status, headers, payload) {
        if (status === 422 && payload.errors) {
            return new DS.InvalidError(payload.errors);
        }

        return this._super(...arguments);
    }
});

我的应用程序路由中的错误操作永远不会被触发。

export default Ember.Route.extend({
    actions: {
        error(error, transition) {
            console.log(error, transition); //Never displayed
        }
    }
});

我正在 Controller 中调用商店。

export default Ember.Controller.extend({
    actions: {
        getUsers() {
            this.get('store').findAll('user').then((users) => {
                this.set('users', users);
            });
        }
    }
});

知道如何修复此错误并在我的 route 触发错误 Hook 吗?

谢谢

最佳答案

我认为您必须自己捕获错误,这样它就不会被 ember 数据实现捕获。

getUsers() {
    this.get('store').findAll('user').then((users) => {
        this.set('users', users);
    }).catch((error) => {
        // Add some custom error handling or do nothing to prevent the exception from getting thrown
    });
}

此外,只有当转换中的 promise (例如在模型 Hook 之一)拒绝时,路由中的错误 Hook 才会被触发。如果您在 Controller 中有 promise ,则必须自己触发操作/事件。

关于javascript - 连接丢失时适配器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34081066/

相关文章:

javascript - 如何从父组件设置Ember组件的内部状态?

ember.js - Ember 数据模型重新加载导致 {{each}} 中的项目被移除/插入 - 失去当前状态

javascript - Ember-data DS.Model 中的私有(private)变量

javascript - Jest 和 enzyme 有什么区别?

javascript - 寻找嵌入式报告解决方案

ember.js - Ember Simple Auth 在使用 Torii 进行身份验证后立即使 session 无效

javascript - Ember 2.0的 Handlebars helper不是一个函数吗?

javascript - 从PHP中的字符串获取多个图像src

JavaScript - 不正确的自动舍入小数

javascript - Ember.js 使用已经存在的子模型提交父模型