【问题标题】:Ember.js, throttle REST adapter callsEmber.js,限制 REST 适配器调用
【发布时间】:2015-05-14 00:05:24
【问题描述】:

我正在使用 Parse,它只允许 30 个请求/秒到他们的后端。

因此,我想限制所有通过 REST 适配器(特别是 ember-parse-adapter,它扩展了 DS.RESTAdapter)去 Parse 的调用。

我尝试限制 ajax 方法,我认为它需要返回一个 Promise:

export default ParseAdapter.extend({
    applicationId: ENV.APP.applicationId,
    restApiId: ENV.APP.restApiId,

    ajax: function(url, type, options) {
        var self = this;
        return new Ember.RSVP.Promise(function(resolve, reject) {
            Ember.run.later(this,resolve,5000); // I would prefer this to be Ember.run.throttle, but not sure if that will work
        }).then(function() {
            return self._super(url,type,options)
        });
    }

});

但是我得到这个错误:

TypeError: Cannot read property 'results' of undefined
    at exports.default.DS.default.RESTSerializer.extend.extractArray (vendor.js:115817)
    at apply (vendor.js:30197)
    at superWrapper (vendor.js:29749)
    at ember$data$lib$system$serializer$$default.extend.extractFindAll (vendor.js:81161)
    at ember$data$lib$system$serializer$$default.extend.extract (vendor.js:81144)
    at superFunction [as _super] (vendor.js:25863)
    at exports.default.DS.default.RESTSerializer.extend.extract (vendor.js:115843)
    at apply (vendor.js:30197)
    at superWrapper [as extract] (vendor.js:29749)

我可以做些什么来限制 REST 适配器?

【问题讨论】:

    标签: ember.js ember-data


    【解决方案1】:

    如果我理解正确的话,你想一起批处理 API 请求吗?

    我自己不知道执行此操作的最佳方法,但是一个很好的起点可能是这个 Ember CLI 插件,'ember-model-batch'

    Direct link to source code

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-20
      • 1970-01-01
      • 2013-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多