如果这里操作不用await会怎么样

如果这里操作不用await会怎么样

如题,就等于不是异步操作叭,但是这里按道理操作数据就算不是异步操作优惠有什么影响呢??请老师给我指点一下迷津

正在回答 回答被采纳积分+1

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

2回答
好帮手慕慕子 2020-08-10 09:51:37

同学你好,对于你的问题解答如下:

  1. 是的,操作数据库本身这个行为就是异步的。

  2. 不添加await时,还在查询数据时,代码已经继续往后执行了,所以此时的user并不是我们想要的user值。

    对比第一次回复中不添加await打印user的结果

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

    这里给出添加await后,打印的user结果,帮助同学对比理解。

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

    打印结果如下:等到数据库操作完毕后,再执行后面的代码,所以可以正常获取到用户信息

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

祝学习愉快~

好帮手慕慕子 2020-08-09 19:20:01

同学你好,操作数据库是异步的,老师这里使用async和await结合使用是为了实现同步操作,等从数据库中读取到数据之后,再进行下一步操作。

如果不使用await,那么代码按着从上到下的顺序执行,由于数据库操作是异步的,导致还查询数据库时,已经执行了后面的代码,导致代码报错。

示例:可以测试下查看效果

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

页面访问出现报错

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

打印的user也不是对应的用户信息

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

同学可以结合示例测试理解下,祝学习愉快~


  • 提问者 慕雪9296518 #1
    老师我有带你不明摆着这点,什么叫做操作数据库是异步的,意思是说操作数据库本身这个行为就是异步的吗??可是如果是从上到下执行,我看代码也没有错啊就是先检测后登录嘛,哪里有问题了
    2020-08-09 22:06:15
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
5. Node.js全栈开发
  • 参与学习           人
  • 解答问题       307    个

前端工程师会后端开发已是趋势。从node.js到koa2再到数据库知识。结合真实项目,从项目需求分析、接口和数据设计到业务开发,帮你打通前后端任督二脉,为就业加码。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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