indexeddb 调用堆栈的无效状态错误
indexeddb Invalid state error by call-stack?
再次,我在indexeddb上遇到了一些问题。我得到了一个
无效状态错误: 尝试对数据库执行更改操作 这不允许突变。
还有一个
AbortError
这是我的代码:
DB_LINK.prototype.pushStoreNumeric = function ()
{
// Saving Values
var _temp = 0;
var _version = this.link.version;
var _name = this.link.name;
var that = this;
var _objectStoreNames = this.link.objectStoreNames;
// Close DB
this.link.close();
this.state = 4;
// Reopen Database
this.req = indexedDB.open(_name,_version+1); // Abort error here
this.req.onupgradeneeded = function () {
that.state = 1;
// Get Number of object stores
_temp = _objectStoreNames.length;
if(_temp != 0)
{
// Already object stores: read highest value
_temp = parseInt(_objectStoreNames[_objectStoreNames.length - 1]);
}
that.link.createObjectStore(_temp); // InvalidStateError here
};
我已经标记了每条评论发生错误的位置。
首先发生无效状态错误,然后发生中止错误。
我在同一数据库的另一个成功函数中调用此函数。这可能是问题所在吗?
什么是this.link
?这可能是问题所在。您需要对indexedDB.open
请求创建的数据库实例执行createObjectStore
。所以无论是this.req.result.createObjectStore
还是(如果你改成this.req.onupgradeneeded = function (e) {
)你可以使用e.target.result.createObjectStore
.
更一般地说,我无法真正评论您的代码应该做什么,因为我只能看到一个片段,但是每次调用它时您如何递增版本看起来真的很奇怪。可能你实际上并不想这样做。您可能想阅读更多文档。
相关文章:
- 相位器状态未捕获参考错误
- 未捕获的类型错误:无法读取属性'状态'在react中为null
- 使用Twitter API进行推文时出现重复状态错误
- Angularjs$状态错误
- 历史.推送状态错误,我不知道为什么
- indexeddb 调用堆栈的无效状态错误
- YDN:Firefox 版本 44 上出现消息无效状态错误的错误
- 许多画布对象会导致“无效状态错误:尝试使用不可用或不再可用的对象”
- 在angular js promise中未获取状态错误代码
- 使用Angular.js ui路由器获取状态错误
- 在IE11中设置xmlHttp响应类型为msxml-document会抛出无效状态错误
- Angular状态提供程序抛出的问题无法解决状态错误
- 回发时无效的视图状态错误
- 我如何在React JS中处理状态错误
- 使用FileReader时,chrome浏览器的无效状态错误
- 无法解决ui-route中的状态错误
- 收到非活动状态错误- JQuery
- I'm向节点服务器发送了一个文件,它给了我404状态错误
- 未捕获的无效状态错误:无法在“WebSocket”上执行“发送”:仍处于“正在连接”状态
- 没有例外,但状态错误,而做jquery ajax