zoukankan      html  css  js  c++  java
  • Node.js系列基础学习-----回调函数,异步

    Node.js基础学习

    Node.js回调函数

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

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

    阻塞代码:

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

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

    执行结果:

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

    非阻塞代码

    创建文本和js,如下:

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

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

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

    附件:

    理解Node.js的异步非阻塞I/O模型:https://cnodejs.org/topic/4f50dd9798766f5a610b808a

  • 相关阅读:
    firefox配置
    安装gstreamer开发环境
    linux下批量替换文件内容(转)
    iptables详细教程:基础、架构、清空规则、追加规则、应用实例(转)
    iptables 使用
    如何用iptables实现NAT(转)
    Python 练习题
    Python unittest 参数化
    Python Logging模块
    Python 多进程
  • 原文地址:https://www.cnblogs.com/netxiaohui/p/5287413.html
Copyright © 2011-2022 走看看