Node.js系列基础学习-----回调函数,异步

简介: Node.js系列基础学习-----回调函数,异步

Node.js基础学习




Node.js回调函数



Node.js异步编程的直接体现就是回调,异步编程依托回调来实现,但不是异步。回调函数在完成任务后就会被调用,Node有很多的回调函数,其所有的API都支持回调。


Eg:可以一边读取文件,一边执行其它的命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回,这样在执行代码时就没有阻塞或等待文件I/O操作。大大的提高了node.js的性能,处理大量的并发请求。(简单的理解就是同时做两件或者多件事情,减少其等待的时间)  



阻塞代码:


1:创建文本和js代码。如下:

    /*阻塞代码示例*/
    var fs=require('fs'); //引入fs包,读取文件
    var data=fs.readFileSync('ahui.txt');
    console.log(data.toString());
    console.log('程序结束');


执行结果:

679140-20160317145427443-693862061.png


可以发现阻塞代码它是按照顺序执行的,等待文件读取完毕才执行打印操作。


非阻塞代码


创建文本和js,如下:

    /*非阻塞代码示例*/
    var fs=require('fs'); //引入js包
    fs.readFile('ahui.txt',function(error,data){
       if(error) throw error;
          console.log(data.toString());
    });
    console.log('程序执行结束');


679140-20160317145427818-1239718991.png


这个是在读取文件的同时打印输出的。我们不需要等待文件读取完,这样就可以在读取文件时同时执行接下来的代码,大大提高了程序的性能。可以这么说,阻塞式按顺序执行的,非阻塞是不需要按顺序的,所以处理回调函数的参数,就可以写在回调函数内。



代码解析:进行I/O操作,给readFile绑定了一个回调函数function(error,data){},并在读取完ahui.txt文件后执行回调函数,期间,后面的代码继续执行,不受I/O阻塞。

目录
相关文章
|
3月前
|
JSON 前端开发 JavaScript
在 JavaScript 中,如何使用 Promise 处理异步操作?
通过以上方式,可以使用Promise来有效地处理各种异步操作,使异步代码更加清晰、易读和易于维护,避免了回调地狱的问题,提高了代码的质量和可维护性。
|
3月前
|
Web App开发 JavaScript 前端开发
如何学习JavaScript?
如何学习JavaScript?
72 5
|
3月前
|
JavaScript 前端开发 索引
JavaScript学习第二章--字符串
本文介绍了JavaScript中的字符串处理,包括普通字符串和模板字符串的使用方法及常见字符串操作方法如`charAt`、`concat`、`endsWith`等,适合前端学习者参考。作者是一位热爱前端技术的大一学生,专注于分享实用的编程技巧。
44 2
|
3月前
|
存储 JavaScript 前端开发
JavaScript学习第一章
本文档介绍了JavaScript的基础知识,包括其在网页中的作用、如何通过JavaScript动态设置HTML元素的CSS属性,以及JavaScript中的变量类型(`var`、`let`、`const`)和数据类型(基本数据类型与引用数据类型)。通过实例代码详细解释了JavaScript的核心概念,适合初学者入门学习。
67 1
|
4月前
|
JavaScript
js学习--制作猜数字
js学习--制作猜数字
52 4
js学习--制作猜数字
|
4月前
|
JavaScript
webpack学习五:webpack的配置文件webpack.config.js分离,分离成开发环境配置文件和生产环境配置文件
这篇文章介绍了如何将webpack的配置文件分离成开发环境和生产环境的配置文件,以提高打包效率。
77 1
webpack学习五:webpack的配置文件webpack.config.js分离,分离成开发环境配置文件和生产环境配置文件
|
4月前
|
前端开发 JavaScript 开发者
JS 异步解决方案的发展历程以及优缺点
本文介绍了JS异步解决方案的发展历程,从回调函数到Promise,再到Async/Await,每种方案的优缺点及应用场景,帮助开发者更好地理解和选择合适的异步处理方式。
|
4月前
|
JavaScript
js学习--制作选项卡
js学习--制作选项卡
49 4
|
4月前
|
JavaScript
js学习--商品列表商品详情
js学习--商品列表商品详情
51 2
|
4月前
|
JavaScript
js学习--九宫格抽奖
js学习--九宫格抽奖
31 2

热门文章

最新文章