Node.js中如何实现异步处理的多种写法?
- 内容介绍
- 相关推荐
本文共计887个文字,预计阅读时间需要4分钟。
异步的坑+ 最近一段时间参与开发了一个Node.js后台项目,作为PHP开发者,上手项目本身并不难,但开发过程却并不顺利。主要不利的因素在于思维上没有转变,没有从同的角度出发。
异步的“坑”
最近一段时间参与开发了一个Node.js后台项目,作为一个PHP开发者,上手项目本身并不难,但是开发的过程却并不顺利,不顺利的主要原因在于思路上没有转变,没有从同步 的思维转换到异步 的思维。
所谓同步 ,就是程序(线程)在一个任务的处理过程中,不会插入处理其他任务,即使遇到IO等不占CPU的操作,也会一直等待其结束才会继续往下处理。
所谓异步 ,就是程序(线程)在一个任务的处理过程中,会插入处理其他任务,如遇到IO操作,当前任务会将程序(线程)的控制权释放给其他任务,等IO操作结果返回后再继续往下处理。
众所周知,Node.js采用的是单线程的异步模型,在具体代码的写法上自然和PHP等同步模型不一样。在具体项目开发的过程中,各种异步操作相关的关键字层出不穷,如:.then() 、function* ... yield 、async...await 等等。为了写一个类同步 的操作,比如:“在执行完A步骤拿到结果之后再执行B步骤”这么一个简单的需求,却要经过大量的反复调试验证才能解决。究其原因,就是对于这些异步操作的场景和关键字的含义理解不到位,异步操作所提供的选择太多了。
下面就结合代码实例,理一理这些异步操作的参数具体怎么使用。
异步的各种写法
任务说明:项目根目录下有三个文件Jay.txt 、Angela.txt 、Henry.txt ,依次读取这三个文件的内容并打印。
下面使用各种异步处理的方法来完成此任务。
本文共计887个文字,预计阅读时间需要4分钟。
异步的坑+ 最近一段时间参与开发了一个Node.js后台项目,作为PHP开发者,上手项目本身并不难,但开发过程却并不顺利。主要不利的因素在于思维上没有转变,没有从同的角度出发。
异步的“坑”
最近一段时间参与开发了一个Node.js后台项目,作为一个PHP开发者,上手项目本身并不难,但是开发的过程却并不顺利,不顺利的主要原因在于思路上没有转变,没有从同步 的思维转换到异步 的思维。
所谓同步 ,就是程序(线程)在一个任务的处理过程中,不会插入处理其他任务,即使遇到IO等不占CPU的操作,也会一直等待其结束才会继续往下处理。
所谓异步 ,就是程序(线程)在一个任务的处理过程中,会插入处理其他任务,如遇到IO操作,当前任务会将程序(线程)的控制权释放给其他任务,等IO操作结果返回后再继续往下处理。
众所周知,Node.js采用的是单线程的异步模型,在具体代码的写法上自然和PHP等同步模型不一样。在具体项目开发的过程中,各种异步操作相关的关键字层出不穷,如:.then() 、function* ... yield 、async...await 等等。为了写一个类同步 的操作,比如:“在执行完A步骤拿到结果之后再执行B步骤”这么一个简单的需求,却要经过大量的反复调试验证才能解决。究其原因,就是对于这些异步操作的场景和关键字的含义理解不到位,异步操作所提供的选择太多了。
下面就结合代码实例,理一理这些异步操作的参数具体怎么使用。
异步的各种写法
任务说明:项目根目录下有三个文件Jay.txt 、Angela.txt 、Henry.txt ,依次读取这三个文件的内容并打印。
下面使用各种异步处理的方法来完成此任务。

