Node.js 回调函数 1) 阻塞 ,同步 2) 非阻塞 ,异步.

时间:2021-05-23 22:46:51

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("程序执行结束!");

执行:

Node.js 回调函数  1) 阻塞 ,同步   2) 非阻塞 ,异步.

注意:

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

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

Node.js 回调函数  1) 阻塞 ,同步   2) 非阻塞 ,异步.

Node.js 回调函数  1) 阻塞 ,同步   2) 非阻塞 ,异步.

如果指定 字符集.

 var fs = require("fs");

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

执行:

Node.js 回调函数  1) 阻塞 ,同步   2) 非阻塞 ,异步.

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("程序执行结束!");

执行:

Node.js 回调函数  1) 阻塞 ,同步   2) 非阻塞 ,异步.

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

如果指定 字符集.

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) 非阻塞 ,异步.

Node.js 回调函数  1) 阻塞 ,同步   2) 非阻塞 ,异步.

参考链接:

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&period;js回调函数 - 阻塞与非阻塞

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

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

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

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

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

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

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

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

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

随机推荐

  1. Flex布局教程及属性速查

    一.Flex布局介绍 伸缩盒模型(flexbox)是一个新的盒子模型,意为"弹性布局",用来为盒状模型提供最大的灵活性,主要优化了UI布局.Flexbox的功能主要包手:简单使用一 ...

  2. 直接用Qt写soap

    直接用Qt写soap 最近的项目里用到了webservice, 同事用的是`gSoap`来搞的. 用这个本身没什么问题, 但这货生成的代码实非人类可读, 到处都是`__`和`_`, 看得我眼晕.... ...

  3. 使用Loadrunner进行http接口压力测试

    业务描述: 在业务系统里进行查询操作,查询的结果是通过请求http接口,从系统中处理并将结果以json字符串返回. 本文就讲述使用Loadrunner对此类接口进行压力测试并记录相关的性能指标数据: ...

  4. angularjs——路由篇

    路由 路由功能是由 routeProvider服务 和 ng-view 搭配实现,ng-view相当于提供了页面模板的挂载点,当切换URL进行跳转时,不同的页面模板会放在ng-view所在的位置; 然 ...

  5. 【一天一道LeetCode】&num;50&period; Pow&lpar;x&comma; n&rpar;

    一天一道LeetCode系列 (一)题目 Implement pow(x, n). (二)解题 题目很简单,实现x的n次方. /* 需要注意一下几点: 1.n==0时,返回值为1 2.x==1时,返回 ...

  6. mysql语法、特殊符号及正则表达式的使用

    http://blog.csdn.net/pipisorry/article/details/46773545 sql语言 结构化的查询语言.(Structured Query Language),是 ...

  7. Labview学习笔记-条件结构的两个问题

    数组:“创建数组控件“用于连接数组 输入端:数组+元素 或数组+数组 右键创建数组控件 在连接数组项上打钩或取消,改变连接的数组维度 簇:就是C语言中的结构体 簇和数组的转换 必须保证各元素数据类型一 ...

  8. DevExpress GridView自动滚动

    引言 最新有一个winform项目使用的是DevExpress的控件,所以最近都在摸索使用这套控件,实在是佩服整套控件的强大,同时代码写起来也简洁.客户有一个需求,希望报表结果能在外接的大屏幕上定时滚 ...

  9. Jmeter压力测试工具安装及使用教程

    一.Jmeter下载 进入官网:http://jmeter.apache.org/ 1.第一步进入官网如下图 2.选择进行下载,下载下来为一个压缩包,解压即可. 3.我下载的是jmeter4.0版本, ...

  10. 视觉slam十四讲

    对这个的学习一直都在,感觉到了这本书很强大呀!!! ch2---安装ubuntu:安装kdevelop. ch3---安装eigen3---几何模块:安装Pangolin可视化. ch4---安装So ...