异步就用await?不太对吧

来源:2-6 介绍ejs-循环和组件

weixin_慕数据0369417

2019-12-15

  • await使用是同步的!不是因为IO异步才用await,而是因为IO异步才用async;IO为何异步就是提了一下,也没有讲清楚为什么IO需要异步。。。。
写回答

1回答

双越

2019-12-15

第一,async await 要组合使用,可以解决 IO 异步的代码嵌套逻辑(也可以是其他异步的问题),用同步的编码方式编写。

第二,本课程是纯 nodejs 实战,光讲实战部分就已经内容很多了。所以,本课程中没有讲解“为何 IO 是异步”这种基础性问题,这个在课程导学中也提到过。课程要控制一定的体量和学习时间,这一点还请理解。

-------------

不过既然提出来,可以先解释一下为何 IO 是异步,其实不难理解。

nodejs 涉及到的 IO 主要是硬盘读写和网络请求,这两者的都需要长时间的等待 —— 相比于 CPU 的运算速度来说。而 nodejs 又是单线程的语言,不支持多线程,如果长时间 IO 等待而让 CPU 闲置,将会阻塞后续代码执行,会造成执行卡顿,影响执行效率。所以,nodejs 对应 IO 操作用异步的方式来处理,即用事件轮询的方式。

如上解释不知是否描述清楚了,如有疑问可继续回复我。

7
0

Node.js+Koa2框架生态实战 - 从零模拟新浪微博

用 Koa2 做真正的实战项目,不再只是增删改查的小白工程师

964 学习 · 388 问题

查看课程