Node.js 回调函数 1) 阻塞 ,同步 2) 非阻塞 ,异步.
1.阻塞. 同步.
1) 读取的文件: input.txt
菜鸟教程官网地址:www.runoob.com
2) main.js
var fs = require("fs");
//同步读取, 阻塞代码,按顺序执行的
var data = fs.readFileSync('input.txt');
console.log(data);
console.log(data.toString());
console.log("程序执行结束!");
执行:

注意:
第一:绿色方框的是 输出 data. 可见 不可以直接输出读取的文件, 要使用 data.toString()
第二: 阻塞执行 ,是同步的, 按照顺序的.


如果指定 字符集.
var fs = require("fs");
//同步读取, 阻塞代码,按顺序执行的
var data = fs.readFileSync('input.txt', 'utf8');
console.log(data);
console.log(data.toString());
console.log("程序执行结束!");
执行:

2. 非阻塞 ,异步:
1) 要读取的文件 . input.txt
菜鸟教程官网地址:www.runoob.com
2) main.js
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) {
return console.error(err);
};
console.log(data);
console.log(data.toString());
});
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 回调函数 1) 阻塞 ,同步 2) 非阻塞 ,异步.的更多相关文章
- 5、Node.js 回调函数
内容:回调函数:阻塞/同步.非阻塞.和异步区别:阻塞和非阻塞代码实例 Node.js 回调函数Node.js 异步编程的直接体现就是回调.异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了. ...
- Node.js 回调函数
Node.js 回调函数 Node.js 异步编程的直接体现就是回调. 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了. 回调函数在完成任务后就会被调用,Node 使用了大量的回调函数, ...
- 简单测试Java线程安全中阻塞同步与非阻塞同步性能
摘抄自周志明老师的<深入理解Java虚拟机:JVM高级特性与最佳实践>13.2.2 线程安全的实现方法 1.名词解释 同步是指锁哥线程并发访问共享数据时,保证共享数据同一时刻只被一个线程访 ...
- boot asio 非阻塞同步编程---非阻塞的accept和receive。
boot asio 非阻塞同步编程---非阻塞的accept和receive. 客户端编程: #include<boost/timer.hpp> #include <iostream ...
- node.js回调函数 - 阻塞与非阻塞
1.阻塞调用(读取完文件再执行后面的操作) var fs = require("fs"); var data = fs.readFileSync('/fs.txt'); conso ...
- Node.js 学习(四)Node.js 回调函数
Node.js 异步编程的直接体现就是回调. 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了. 回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都 ...
- 17.Node.js 回调函数--异步编程
转自:http://www.runoob.com/nodejs/nodejs-tutorial.html Node.js 异步编程的直接体现就是回调. 异步编程依托于回调来实现,但不能说使用了回调后程 ...
- arcgis api for js回调函数如何等待同步
arcgis js开发往往会遇到同步异步的问题,有可能在上一步使用了arcgis js模块回调函数,下一步需要用上一步回调函数的结果,但是因为JavaScript是异步执行的,它并不会等待上一步的回调 ...
- JS回调函数(理解篇)
概述: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用,而 ...
随机推荐
- windows上使用composer安装yii2
切换成中国镜像 composer config -g repo.packagist composer https://packagist.laravel-china.org 在电脑的dos命令中写入: ...
- csrf漏洞
漏洞原理:csrf全名为跨站请求伪造,是一种对网站的恶意利用,虽然听起来和xss很像,但是它们俩还是有很大的区别的.csrf是通过伪造来自受信任用户的请求来利用受信任的网站. 比如: 一个有csrf漏 ...
- shiro中拦截器机制
8.1 拦截器介绍 Shiro使用了与Servlet一样的Filter接口进行扩展:所以如果对Filter不熟悉可以参考<Servlet3.1规范>http://www.iteye.com ...
- 判断input[type=file]上传文件格式
input type="file" 在js中判断文件上传类型 function onSubmit(){ var form1 = document.forms[0]; var fil ...
- 创建型模式篇(单例模式Single Pattern)
一.单例模式(Singleton Pattern) 单例模式要求一个类只能有一个实例,并且提供了一个全局的访问点. 比如说,中国主席的职位是Singleton,法律规定主席选举,任何时间只能有一个主席 ...
- HashSet和ArrayList有什么区别
hashSet存储的是无序,不可重复,无索引 ArrayList存储的是有序,可重复,有索引
- noip2013转圈游戏
题目描述 n个小伙伴(编号从 0到 n−1)围坐一圈玩游戏.按照顺时针方向给 n个位置编号,从0 到 n−1.最初,第 0号小伙伴在第 0号位置,第 1号小伙伴在第 1 号位置,……,依此类推. 游戏 ...
- js 日期格式: UTC GMT 互相转换
//UTC 转指定格式日期 let date = '2018-03-07T16:00:00.000Z' console.log(moment(date).format('YYYY-MM-DD HH:m ...
- 使用Spring Security安全控制(二十六)
准备工作 首先,构建一个简单的Web工程,以用于后续添加安全控制,也可以用之前Chapter3-1-2做为基础工程.若对如何使用Spring Boot构建Web应用,可以先阅读<Spring B ...
- python 文件的打开与读取
python 文件的打开与读取 其实网上其他人写的都挺好的,我也是看他们的.办公室用的2.7.笔记本用的3.6.发现没有file 类,尴尬了 with open(r'C:\Users\HBX\Docu ...