异步I/O

学习node的同学都知道,Node的结构与Chrome十分相似。它们都是基于事件驱动的异步框架,Node通过事件驱动服务I/O;

来我们说下一异步I/O,对于前段来说,最直观场景体现就是ajax请求;

我们看一个例子

        $.post('/url', {title: '深入浅出Node.js'}, function (data) {
            console.log('收到响应');
        });
        console.log('发出Ajax结束');

 

 当post执行的时候,我们会先看到 "发出Ajax结束",而"收到响应"的时间是不被预期的,

异步调用对结果的捕捉符合"Don't call me,I will call you!"的原则,来我们看一下执行的过程;

在 node 中异步也很常见,已读取文件为例,我们看一段代码

        var fs = require('fs');
fs.readFile(
'/path',function(err,file){ console.log('读取文件结束'); }); console.log('发起读取文件');

 

这里的 “发起读取文件” 是在 “读取文件” 之前执行的,是不是和ajax的非常类似呢!

 

 

在node 中 90%以上的操作是异步的进行的,异步执行在时间上明显低于同步

再看一段代码

        fs.readFile('/path1',function(err,file){
            console.log('读取文件结束');
        });
        fs.readFile('/path2',function(err,file){
            console.log('读取文件结束');
        });

这一段代码的执行的时间是什么???

如果的同步的话,执行时间将是两者之和

 

转载于:https://www.cnblogs.com/pangzi666/p/5887852.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值