zoukankan      html  css  js  c++  java
  • Node.js 回调函数 1) 阻塞 ,同步 2) 非阻塞 ,异步.

    1.阻塞. 同步.

     1) 读取的文件: input.txt

    菜鸟教程官网地址:www.runoob.com

    2) main.js

    1 var fs = require("fs");
    2 
    3 //同步读取, 阻塞代码,按顺序执行的
    4 var data = fs.readFileSync('input.txt');
    5 
    6 console.log(data);
    7 console.log(data.toString());
    8 console.log("程序执行结束!");

     执行:

    注意:

     第一:绿色方框的是 输出 data.     可见 不可以直接输出读取的文件,  要使用  data.toString()

    第二: 阻塞执行 ,是同步的, 按照顺序的.

     

     如果指定 字符集.

    1 var fs = require("fs");
    2 
    3 //同步读取, 阻塞代码,按顺序执行的
    4 var data = fs.readFileSync('input.txt', 'utf8');
    5 console.log(data);
    6 console.log(data.toString());
    7 console.log("程序执行结束!");

    执行:

    2. 非阻塞 ,异步:

    1) 要读取的文件 .   input.txt

    菜鸟教程官网地址:www.runoob.com

    2) main.js

     1 var fs = require("fs");
     2 
     3 //同步读取, 阻塞代码,按顺序执行的
     4 // var data = fs.readFileSync('input.txt');
     5 // console.log(data);
     6 // console.log(data.toString());
     7 // console.log("程序执行结束!");
     8 
     9 //异步读取, 阻塞, 不是按照顺序.
    10 fs.readFile("input.txt", function(err, data){
    11     //err:
    12     console.log("err:", err);
    13     if (err) {
    14         return console.error(err);
    15     };
    16     console.log(data);
    17 
    18     console.log(data.toString());
    19 });
    20 
    21 console.log("程序执行结束!");

    执行:

     -----------------

    如果指定 字符集.

    var fs = require("fs");
    
    //同步读取, 阻塞代码,按顺序执行的
    // var data = fs.readFileSync('input.txt');
    // console.log(data);
    // console.log(data.toString());
    // console.log("程序执行结束!");
    
    //异步读取, 阻塞, 不是按照顺序.
    // fs.readFile("input.txt", function(err, data){
    //     //err:
    //     console.log("err:", err);
    //     if (err) {
    //         console.error(err);
    //     };
    //     console.log(data);
    
    //     console.log(data.toString());
    // });
    
    // console.log("程序执行结束!");
    
    fs.readFile("input.txt","utf8", function(err, data){
        //err:
        console.log("err:", err);
        if (err) {
            return console.error(err);
        };
        console.log(data);
    
        console.log(data.toString());
    });
    
    console.log("程序执行结束!");

     

    参考链接:

      Node.js 回调函数

  • 相关阅读:
    谁记录了mysql error log中的超长信息(记pt-stalk一个bug的定位过程)
    谈谈MySQL无法连接的原因和分析方法
    MySQL 5.7基于GTID复制的常见问题和修复步骤(二)
    日常运维故障记录和解决
    python学习之-- 故障记录汇总
    sshpass-Linux命令之非交互SSH密码验证
    python 之 线程池实现并发
    python 之 实现su 到root账号
    shell
    shell
  • 原文地址:https://www.cnblogs.com/cbza/p/7264372.html
Copyright © 2011-2022 走看看