NodeJS的异步编程风格

NodeJS异步编程风格详解

NodeJS运行环境因其支持Javascript语言和异步编程受到开发社区越来越多的关注。从GitHub上的访问量来看,NodeJS项目的关注度在最近几个月已经超过了Ruby及RoR。作为一个新鲜的平台,开发人员开始尝试去接触并运用于实际工作中,比如LinkedIn、Yammer、GitHub、淘宝等企业已经在生产环境中部署了NodeJS应用。不过,在学习NodeJS的过程中,从同步编程到异步编程风格的转换是开发人员面临的一个主要问题,我们如何去适应呢?技术社区在讨论这种转变,专家Marc Fasel也撰写了精彩的文章来阐述该问题,本文尝试结合Marc Fasel的指导思想和笔者的实践经验来介绍一些NodeJS的异步编程风格,希望对NodeJS的初学者有所启发。

\\

第一个例子,读取目录信息

\\

说起NodeJS的异步编程,我们必须提到回调函数(callback),纵览NodeJS的API文档,满眼的回调函数说明,在其他的编程语言中,也会存在一些异步的回调函数模型,但是没有NodeJS这样的大范围应用。这些回调函数应用在异步函数中,作为其参数,当异步函数触发某事件时(如http响应返回)即调用该回调函数做进一步操作。NodeJS也提供了一些传统的同步函数,即应用程序必须等待该函数返回,才会执行后面的代码。而异步函数则不同,应用程序在调用异步函数后会立即返回,执行后面的代码,至于异步函数的处理则交给回调函数来做。例如,在NodeJS中存在两个获取目录信息的函数,分别是同步的readdirSync()和异步的readdir()。看下面的代码片段(源于Marc Fasel,略作改动):

\\
\

//同步
\filenames = fs.readdirSync(\".\");
\for (i = 0; i \u0026lt; filenames.length; i++) {
\    console.log(filenames[i]);
\}
\console.log('Current uid: ' + process.getuid());

\\

//异步
\fs.readdir(\".\

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值