【发布时间】:2019-11-05 12:57:49
【问题描述】:
我目前正在使用 Dexie.js 处理来自 IndexedDB 的“缓存”请求。起初,我将请求保存到 IndexedDB 队列中,以便一次全部刷新。不幸的是,我的条目发出后似乎无法删除。
我按照official docs 中的指南/示例进行操作,但我无法让它发挥作用。我什至试图将它集中到一个带有 'rw' 的 db.transaction 中
function flushQueue(){
queueRunning = true; // used to mimic singleton pattern
return db.queue.orderBy(':id').modify(async function(value){
var _this = this;
return deserializeRequest(value.serializedReq).then(async function(request){
return fetch(request).then(function(){
notifyClients("Request has been sent: ", request);
// deleting request from queue
delete _this.value;
});
});
});
}
有什么想法会出错吗?
亲切的问候, 费利克斯
【问题讨论】:
-
您是否尝试过使用箭头功能,就像文档中提到的那样?
(value, ref) => { delete ref.value; }); -
您的链中是不是也缺少
equals?.where("isKindToMe").equals("no").modify -
我假设不需要 where/equals 语句,因为 orderBy() 也返回一个 Collection 对象——就像 .equals() 一样。
-
当我尝试从内部 then-callback... 中删除 ref.value 时,箭头函数方法也不起作用...
标签: javascript asynchronous indexeddb dexie