node中什么是同步和异步? - 网站

node中什么是同步和异步?

分类:Node.js常见问题 · 发布时间:2019-08-07 15:19 · 阅读:2243

Node.js以其速度而闻名,因为它是非阻塞的。非阻塞意味着一个请求不会等待另一个请求结束(也就是异步的)。异步这一特性使Node.js成为当前吞吐量最大的框架,而Java应用服务器通常阻塞每个绑定到线程的请求,只要没有更多线程可用,服务器会停止接收请求。

node中的同步与异步:

1、什么是同步?

同步:上一步执行完后下一步才能得到执行。

2、什么是异步

异步:将比较复杂的任务制作成任务线程,以任务线程实现,不用等上一句执行完,下一句也可以执行。

异步实现的三种方式:

1、回调函数

异步一定有回调函数,回调函数不一定是异步。
比如回调函数forEach(function(value,index,arr){})是同步的

2、事件

事件源.on('事件名称',回调函数);

var http = require('http');
var server = http.createServer();
server.on('require',function(req,res){...});
server.listen(80,function(){...});

3、promise

是ES6中新增的承诺对象,用于对异步的操作进行消息的传递

它有3个状态

Pending     等待中
Resolved     成功
Rejected    失败

状态的转化

Pending --> Resolved  
pending --> Rejected

用处

可以用于传递异步消息。由于异步的返回结果时间顺序不可控,所以需要使用promise来统一控制输出结果。

var fs = require('fs');
var p1 = new Promise(function(resolve,reject){
    fs.readFile('./2-file1.txt',function(err,data){
            if(err){
            reject('file1读取文件出错了!');
        }else{
            resolve(data.toString());
        }
    });
});
var p2 = new Promise(function(resolve,reject){
    fs.readFile('./2-file2.txt',function(err,data){
            if(err){
            reject('file2读取文件出错了!');
        }else{
            resolve(data.toString());
        }
    });
});
//利用promise对象的all方法可以实现手动调整输出的顺序,相当于把异步变成同步,但其实还是异步
Promise.all([p1,p2]).then(function(datas){
    console.log(datas);
},function(errs){
    console.log(errs);
});

标签:
node

相关文章

如何设置 nodejs 的环境变量

在前端开发过程中,我们需要对 application 运行的环境进行设置,一般会包括开发环境development,生产环境production,每个环境可以对应不同的一些配置,例如不同环境下请求的地址...

谈谈Node.js与JavaScript的差异

Javascript是一种web前端语言,主要用于web开发中,由浏览器解析执行。Node.js是一个可以快速构建网络服务及应用的平台,是用Javascript语言构建的服务平台。

npm install安装报错怎么解决?

解决方法:1、报“operation not permitted”错误,通过“npm i 包名 --no-optional”解决;2、报“Missing: chromedriver”错误,表示没有安装chromedriver,安装一下即可。

怎么使用npm下载vue.js?

使用npm下载vue.js的方法:1、安装node.js和npm;2、安装cnpm;3、使用命令cnpm install -g vue-cli来安装即可。

vue.js和node.js是什么关系?

vue.js和node.js并没有关系,vue.js是前端框架,算是js的三大框架之一吧,node.js是后端开发语言,同php、java、c#一样的。但是他们可以配合使用。

返回分类 返回首页