老师看看这个
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//数据库
var dba = indexedDB.open("sss",13);
dba.onupgradeneeded = function () {
var tbl = dba.result;
// tbl.createObjectStore("test3",{autoIncrement:true});
var index = tbl.createObjectStore("index", { keyPath: "id" });
//创建索引
index.createIndex("index", "name", { unique: false });
}
var json = [{
"id": 1001,
"name": "zyc1",
"age": 18
}, {
"id": 1002,
"name": "zyc2",
"age": 18
}, {
"id": 1003,
"name": "zyc3",
"age": 18
}]
setTimeout(function () {
var db = dba.result;
var transcation = db.transaction("index", "readwrite");
var data = transcation.objectStore("index");
for (var i = 0; i < json.length; i++) {
data.add(json[i]);
}
}, 3000)
</script>
</body>
</html>
<body>
</body>
</html>
老是出现这种
Uncaught DOMException: Failed to read the 'result' property from 'IDBRequest': The request has not finished.
正在回答 回答被采纳积分+1
同学你好,老师测试你的代码,没有出现“Uncaught DOMException: Failed to read the 'result' property from 'IDBRequest': The request has not finished.”这个报错信息,不过当把定时器去掉时,则会出现同学的报错:
报错信息的意思是:从“IDBRequest”中,不能正确读取“result”属性,因为请求还没有完成,报错位置如下:
原因是“ indexedDB.open()”这个方法是异步的,当执行“var db = dba.result;”时,可能“indexedDB.open()”还没有执行完,所以无法获取“result”。
建议同学参考如上,看下自己的代码是不是此处报错,如果是的话,就适当增大延时时间。
祝学习愉快!
- 参与学习 人
- 提交作业 622 份
- 解答问题 6815 个
微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星