@FunC
2016-10-20T17:36:33.000000Z
字数 723
阅读 2160
JavaScript
最近在学一点点Node.js,需要理解Node的运行机制,百度上一查,全都在说什么“异步处理”、“回调函数”、“事件轮询机制”、“单线程”、“并发处理”。满眼看过去都是陌生的名字,看得我瑟瑟发抖。这几天杂七杂八的也看了不少相关的文章,在这里做个记录,便于自己以及后人查询。
- 发出调用,立即得到结果是为同步。同步就是调用之后一直等待,直到返回结果。
- 发出调用,但无法立即得到结果,需要额外的操作才能得到预期的结果是为异步。异步则是调用之后,不能直接拿到结果,通过一系列的手段才最终拿到结果(调用之后,拿到结果中间的时间可以介入其他任务)。
by 朴灵 评阮一峰的《JavaScript 运行机制详解:再谈Event Loop》
同步和异步是处理调用的不同效果的一个描述,而不是一种机制。它需要执行环境(如浏览器)去实现。其中Event loop(事件轮询机制)就是实现异步的其中一种机制。
待引用《Node.js实战》内容
下面是我凭借自己理解举出的例子
我们先来假想一个去麦当劳点餐的场景。
补充前提:点餐和送餐的是由一位服务员完成
1. 首先,你到前台点餐。
2. 付钱过后服务员给你一张叫号单,让你等候取餐。
3. 然后服务员继续接待下一位客人。
4. 一段时间后,厨房做好了你的餐点。
5. 辅助叫号的服务员看到你点的餐做好了,叫你取餐。
这是一个典型的现实生活中异步的例子。下面来分析一下每一步对应程序里的什么:
以下是每一步的对应
1. 点餐相当于程序中的调用,这个调用期望的结果是拿到你点的食物。
2. 叫号单相当于回调函数
3. 服务员