为什么在控制台里输入函数就能成功查找,而在代码里直接运行却会报错呢?

为什么在控制台里输入函数就能成功查找,而在代码里直接运行却会报错呢?

如题:直接在控制台里执行函数可以成功查找http://img1.sycdn.imooc.com//climg/5baae7bd00014c4f05880202.jpg


而直接在代码里运行函数却报错了:

http://img1.sycdn.imooc.com//climg/5baae7eb000101d605780118.jpg

http://img1.sycdn.imooc.com//climg/5baae7ec0001866705730289.jpg


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

报错信息在返回数据库打开成功的前面:

http://img1.sycdn.imooc.com//climg/5baaf4e50001495406480147.jpg

意思就是数据库还没有打开呢,就执行了getAllData方法,所以获取不到会报错。

在控制台中测试是数据库打开成功之后测试的。

可以在代码中添加一个按钮,然后这个按钮添加点击事件,点击按钮获取所有数据是可以成功的哦,如下:

http://img1.sycdn.imooc.com//climg/5baaf55b0001479805520039.jpg

http://img1.sycdn.imooc.com//climg/5baaf56a00010eee03660096.jpg

自己测试下,祝学习愉快~~

  • 意思是getAllData( )方法先执行了? 我的getAllData( )方法在代码里的位置是在createDB( )之后的,这又是为什么执行的时候会先执行getAllData( )方法而不是createDB( )方法呢?
    2018-09-26 11:20:29
  • IndexDB大部分是的异步API ,IndexDB数据库操作并不会立即执行,而是先创建数据库操作要求,然后定义事件处理函数来响应这些要求是成功还是失败。所以在请求打开和更新的过程中,进入了事件列队,先执行了下面的代码 getAllData。
    2018-09-26 11:49:50
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师