zoukankan      html  css  js  c++  java
  • 关于node回调函数中同步和异步操作的理解

    1、node的回调函数:如果一个方法的参数是另一个函数的名字,则这个参数本身就要回调函数,这个函数就是回调函数

    1)、同步操作文件(阻塞I/O)

     

       同步就是一个人干完这个再干那个……

       所以存在排队 阻塞

      就像很多顾客,一个服务员一个个的服务顾客

     

    2)、异步操作文件(非阻塞I/O)

     

       一个人开出一条路,然后开始做这条路上的所有事情,一口气一起做,程序瞬间完成

        所有的都开始,没有排队 阻塞

       就像一个服务员服务很多、多个顾客

     

     

    2、加载file模块      

    (阻塞I/O/同步操作文件)

    首先建立好一个2.txt文件(内容随意)

    //加载fs file模块
    const fs=require('fs');
    file='2.txt';
    
    //开始读取文件
    Console.log('file start ');
    //正在读取文件
    data=fs.readFileSync(file);
    console.log(data.toString());
    //读取文件结束
    Console.log('file end! ');

    如图中显示的

    走一个再走下一个

    ( 异步操作文件/非阻塞I/O)

    程序瞬间执行完毕,然后再一次一次操作(先走file star和file end再走程序)

    //加载fs file模块
    const fs=require('fs');
    file='2.txt';
    
    //开始读取文件
    console.log('file start ');
    //正在读取文件
    //自带事件(当文件内容读取完毕时,然后再输出console.log(data.toString());)
    fs.readFile(file,function(err,data){
        console.log(data.toString());
    });
    //读取文件结束
    console.log('file end! ');

  • 相关阅读:
    Hello_Area_Description 任务三:Project Tango采集区域描述数据
    智能小车 机器人
    Hello_Depth_Perception 任务二:Project Tango采集深度感知数据
    Project Tango Explorer
    make运行阶段划分
    关于chroot
    xargs命令
    debian配置集锦
    gdb使用技巧
    gdb调试使用autotools工程的项目
  • 原文地址:https://www.cnblogs.com/dreamtown/p/13282650.html
Copyright © 2011-2022 走看看