Node.js异步编程模式探讨
2018-10-18周安辉
周安辉
(内江职业技术学院,四川 内江 641100)
0 引言
Node.js是一个编写网络服务和网页应用的平台,采用C++语言编写,优化了Google V8引擎,能够高效地运行JavaScript代码,同时提供了文件、网络等众多系统级的API,有助于开发人员快速地构建高性能的网络服务及其应用。
Node.js围绕一个事件驱动的无阻塞I/O的异步编程模式而构建,代码执行无须阻塞等待某种低速的I/O操作完成而继续,充分利用了有限的资源,非常适合编写处理大量并发请求的后台网络服务。此外,服务器端与客户端的编写,统一使用JavaScript语言,受到开发人员的极大欢迎。
1 Node.js编程中的函数概念[2]
基于函数的传统编程,开发人员是相当熟悉的,大部分编程语言都使用,Node.js也不例外,但是要注意一些概念上的区别。在Node.js的编程中,要正确理解以下几个基本的函数概念,可以帮助我们掌握Node.js的编程模式。
1.1 立即执行函数
在Node.js中可以在定义一个函数后立即执行它。只需要简单地用()括号包裹函数,并调用它,如下所示:.
(function myData(){
console.log('myData was executed!');
})();
在 JavaScript中,if、else或 while语句体并不会创建一个新的变量作用域。如下所示:
var myData=123;
if(true){
var myData=456;
}
console.log(myData);//456;
在JavaScript中,只有使用一个立即执行函数会创建一个新的变量作用域。如下所示:
var myData=123;
if(true){
(function(){//create a new scope
var myData=456;
console.log(myData);//456;
})();
}
console.log(myData);//123;
1.2 匿名函数
一个没有名字的函数被称为匿名函数。在JavaScript中,你可以指派一个函数给一个变量。如果你打算把一个函数赋值给一个变量,你不需要使用命名函数。
以下两种方式定义一个内联函数,两者是等价的:
var foo1=function namedFunction(){
console.log('foo1');
}/*www.java2s.com*/
foo1();//foo1
var foo2=function(){//no function name i.e.anonymous function
console.log('foo2');
}
foo2();//foo2
1.3 首类函数
JavaScript语言拥有首类函数。首类函数意味着函数被当作对象一样的东西来看待,可以把它指派给一个变量。……
