request.result 为什么一到要在onupgradeneeded事件里面才能拿到
来源:3-1 indexDB(1)
立志成为大佬的咸鱼
2019-11-19 22:05:58
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>练习</title>
</head>
<body>
<script type="text/javascript">
//如果有就打开 没有就创建数据库
//版本号只能往上 不能降低
var request=indexedDB.open('testDB',4);
console.log(request);
request.onsuccess=function(){
console.log('数据库创建成功');
};
request.onerror=function(){
console.log('数据库创建失败');
};
request.onupgradeneeded=function(){
console.log('我级别提高了');
var db=request.result;
console.log(db);
}
// var db=request.result;
// console.log(db);
</script>
</body>
</html>
写onupgradeneeded里面不会报错 写外面就报错 但是他说 request下面的东西啊 又不是onupgradeneeded里面的东西 所以为什么一到要写里面???
1回答
同学你好,关于你的问题,回答如下:
1、IndexedDB的方法是异步的,并不是说代码执行完毕就获取到对象了,它也是有请求——响应的模式。所以直接写到外面会报错。
2、不一定要在onupgradeneeded中,可以在请求成功的回调函数中去获取。例:
如果我的回答帮助了你,欢迎采纳,祝学习愉快~
相似问题
回答 1
回答 1