从Node.js进入人们的视野时,我们所知道的它就由这些关键字组成 事件驱动、非阻塞I/O、高效、轻量,它在官网中也是这么描述自己的。
Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.
于是,会有下面的场景出现:
当我们刚开始接触它时,可能会好奇:
- 为什么在浏览器中运行的 Javascript 能与操作系统进行如此底层的交互?
当我们在用它进行文件 I/O 和网络 I/O 的时候,发现方法都需要传入回调,是异步的:
- 那么这种异步,非阻塞的 I/O 是如何实现的?
当我们习惯了用回调来处理 I/O,发现当需要顺序处理时,Callback Hell 出现了,于是有想到了同步的方法:
- 那么在异步为主的 Node.js,有同步的方法嘛?
身为一个前端,你在使用时,发现它的异步处理是基于事件的,跟前端很相似:
- 那么它如何实现的这种事件驱动的处理方式呢?
当我们慢慢写的多了,处理了大量 I/O 请求的时候,你会想:
- Node.js 异步非阻塞的 I/O 就不会有瓶颈出现吗?
之后你还会想:
- Node.js 这么厉害,难道没有它不适合的事情吗?
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69905323/viewspace-2655576/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/69905323/viewspace-2655576/