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回答

好帮手慕糖

2019-11-20

同学你好,关于你的问题,回答如下:

1、IndexedDB的方法是异步的,并不是说代码执行完毕就获取到对象了,它也是有请求——响应的模式。所以直接写到外面会报错。

2、不一定要在onupgradeneeded中,可以在请求成功的回调函数中去获取。例:

http://img.mukewang.com/climg/5dd4ac8609bba24306250250.jpg

http://img.mukewang.com/climg/5dd4ac860961aabc11050068.jpg

如果我的回答帮助了你,欢迎采纳,祝学习愉快~

0

0 学习 · 6815 问题

查看课程