我正在尝试覆盖我的应用程序适配器中的默认查询功能。我正在使用查询从后端获取数据,当应用程序脱机时,我只想使用.peekAll()
查询当前存储在缓存中的数据。
我用这个作为参考,但没有多大用处。 https://emberjs.com/api/data/classes/DS.Adapter.html#method_query
这是我到目前为止所做的。
更新
// adapters/application.js
// turns to cache when no connection available
export default DS.JSONAPIAdapter.extend({
// ...
query(store, type, query) {
let isOnline = this.get('isOnline'); // updates according to connection, returns true or false
if (isOnline) {
// execute regular query() when online
return this._super(...arguments);
} else {
// return promise for query().then() to work
return PromiseArray.create({
promise: RSVP.resolve(store.peekAll(type.modelName))
});
}
}
}
但我的问题是我无法正确执行查询功能中的查询功能。不知道这里有什么问题,我尝试将其包含在承诺中或者使用.then()
返回。
更新
// can't get this to work
query(store, type, query) {
return PromiseArray.create({
promise: RSVP.resolve(store.peekAll(type.modelName))
});
}
我觉得一旦我做对了,剩下的就不会有什么问题了。
非常感谢任何帮助,想法或解决方法!