gpt4 book ai didi

javascript - Dexie:子事务错误

转载 作者:行者123 更新时间:2023-12-02 14:20:41 24 4
gpt4 key购买 nike

我在 Dexie 中运行事务时收到此错误:

name: SubTransactionError message: table _ not included in parent transaction

这仅在我运行此代码后发生:

DeleteApiToken.then (() => {
CacheController.Invalidate();
DataControllerCreator.Blocked++;
Render();
});
Api.Call(this.ApiCall,this.Data,() => {DataControllerCreator.Blocked--;},{ResetCacheState: this.ResetCacheState});
};

DeleteApiToken 函数如下所示。

function DeleteApiToken() {
return DB.transaction('rw', DB.MySelf, () => {
DB.MySelf.delete('ApiToken');
}).catch(function (E) {
console.log(E);
return false;

})
}

然后,渲染函数会导致应用程序重新渲染并运行更多事务,但它们都会抛出前面提到的错误。如果不调用DeleteApiToken,则不会调用。

如果您能看到我的代码中的错误,那就太好了,否则只需简单解释一下为什么会抛出 SubTransactionError 就足够了。谢谢!

最佳答案

单独这段代码似乎不太可能导致错误。该错误表明存在一个名为下划线的表。是这样吗?如果没有,我怀疑您无意中将 DB.MySelf 表的“name”属性更改为下划线

另一个问题是DB是否被用在其他函数如CacheController.Invalidate()中?如果是的话,代码看起来怎么样?

错误说明:仅当从正在进行的事务中启动事务并且新事务尝试包含未包含在正在进行的事务中的表时,才会发生 SubTransactionError。示例:

db.transaction ('rw', 'friends', ()=>{
db.transaction ('rw', 'pets', ()=>{
// SubTransactionError: Table 'pets' not included in parent transaction.
});
});

关于javascript - Dexie:子事务错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38667137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com