node.js自学笔记(3)-异步I/O

来源:互联网 发布:mac samba server 编辑:程序博客网 时间:2024/06/05 07:01

异步I/O是nodejs的一大特点,下面我们以一个简单的例子说明一下

异步I/O

//file.jsvar fs = require('fs');fs.readFile('testerhome.txt','utf-8',function(err,data){    if(err){        console.error(err);    }else{        console.log(data)    }});console.log('end.');

如何解释异步I/O的问题,其实你就看最后一句话是最后打印还是在文件内容前打印,一般像java程序中,这种语句一般都会先读完文件的内容,然后执行最后一句话,这就是同步I/O的语言,那么nodejs的异步I/O是啥呢,先看这个程序的输出吧:

D:\node.js\0211>node file.jsend.Helloworld,I am in testerhomeD:\node.js\0211>

啊哦,为啥是这样的呢?这就是异步I/O,它把执行读写操作发送出去后,不等待直接执行下一条语句。

同步I/O

不鼓励使用同步I/O

node.js也提供了同步读写的功能

//file.jsvar fs = require('fs');fs.readFile('testerhome.txt','utf-8',function(err,data){    if(err){        console.error(err);    }else{        console.log(data)    }});console.log('end.');var data = fs.readFileSync('testerhome1.txt','utf-8');console.log(data);console.log('over.');

执行该程序后的结果输出:

D:\node.js\0211>node file.jsend.Helloworld,I am in testerhome1over.Helloworld,I am in testerhomeD:\node.js\0211>

看出什么端倪了么?

0 0