1.阻塞. 同步.

1) 读取的文件: input.txt

  1. 菜鸟教程官网地址: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

  1. 菜鸟教程官网地址: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("程序执行结束!");

执行:

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

如果指定 字符集.

  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. // console.error(err);
  15. // };
  16. // console.log(data);
  17.  
  18. // console.log(data.toString());
  19. // });
  20.  
  21. // console.log("程序执行结束!");
  22.  
  23. fs.readFile("input.txt","utf8", function(err, data){
  24. //err:
  25. console.log("err:", err);
  26. if (err) {
  27. return console.error(err);
  28. };
  29. console.log(data);
  30.  
  31. console.log(data.toString());
  32. });
  33.  
  34. console.log("程序执行结束!");

参考链接:

Node.js 回调函数

Node.js 回调函数 1) 阻塞 ,同步 2) 非阻塞 ,异步.的更多相关文章

  1. 5、Node.js 回调函数

    内容:回调函数:阻塞/同步.非阻塞.和异步区别:阻塞和非阻塞代码实例 Node.js 回调函数Node.js 异步编程的直接体现就是回调.异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了. ...

  2. Node.js 回调函数

    Node.js 回调函数 Node.js 异步编程的直接体现就是回调. 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了. 回调函数在完成任务后就会被调用,Node 使用了大量的回调函数, ...

  3. 简单测试Java线程安全中阻塞同步与非阻塞同步性能

    摘抄自周志明老师的<深入理解Java虚拟机:JVM高级特性与最佳实践>13.2.2 线程安全的实现方法 1.名词解释 同步是指锁哥线程并发访问共享数据时,保证共享数据同一时刻只被一个线程访 ...

  4. boot asio 非阻塞同步编程---非阻塞的accept和receive。

    boot asio 非阻塞同步编程---非阻塞的accept和receive. 客户端编程: #include<boost/timer.hpp> #include <iostream ...

  5. node.js回调函数 - 阻塞与非阻塞

    1.阻塞调用(读取完文件再执行后面的操作) var fs = require("fs"); var data = fs.readFileSync('/fs.txt'); conso ...

  6. Node.js 学习(四)Node.js 回调函数

    Node.js 异步编程的直接体现就是回调. 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了. 回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都 ...

  7. 17.Node.js 回调函数--异步编程

    转自:http://www.runoob.com/nodejs/nodejs-tutorial.html Node.js 异步编程的直接体现就是回调. 异步编程依托于回调来实现,但不能说使用了回调后程 ...

  8. arcgis api for js回调函数如何等待同步

    arcgis js开发往往会遇到同步异步的问题,有可能在上一步使用了arcgis js模块回调函数,下一步需要用上一步回调函数的结果,但是因为JavaScript是异步执行的,它并不会等待上一步的回调 ...

  9. JS回调函数(理解篇)

    概述: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用,而 ...

随机推荐

  1. 移动端 meta 必备

    将页面宽度到跟手机宽度比例相同,在手机上不能用手缩放 <meta name="viewport"  content="width=device-width" ...

  2. HTML 弹出遮罩层一(遮罩层和内容标签嵌套)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. CentOS7 添加开机启动项

     centos6 加入开机启动:   vim /etc/rc.d/rc.local 注意命令不要出错,重启后生效   或者   centos 7 下: vim /lib/systemd/system/ ...

  4. DVWA-CSRF

    Low等级   image 抓包   image 正常跳转   image   image 在这里我们把密码改为qwer   image   image   image   image   image ...

  5. 【IDEA】【2】创建Maven项目及部署发布

    正文: 1,我参考的文档1已经比较全面了,需要注意的是界面可能有点不一样,有些地方需要自己注意一下 2,project和model的概念:挺困扰人的,我目前没有多模块开发,开发多个项目的时候是开了多个 ...

  6. node模块之path——path.join和path.resolve的区别

    1.path.join([...paths]) path.join() 方法使用平台特定的分隔符把全部给定的 path 片段连接到一起,并规范化生成的路径. 长度为零的 path 片段会被忽略. 如果 ...

  7. CF-517B-DP

    http://codeforces.com/contest/1072/problem/B 给出两个数列 a,b 长度为n-1 ,询问是否能构造出一个长度为n的数列t,使得 所有的ab都满足  a[i] ...

  8. Rail_UVa514_栈

    /* https://vjudge.net/problem/UVA-514 */ #include "pch.h" #include<iostream> #includ ...

  9. excel导入 导出

    PHP页面 //设置header header("content-Type:text/html;charset=utf-8"); //设置文件大小的限制 ini_set(" ...

  10. docker实战系列之docker 端口映射错误解决方法

    错误: Error response from daemon: Cannot start container web: iptables failed: iptables -t nat -A DOCK ...