我的Node.js学习之路(三)–node.js作用、回调、同步和异步代

2020-06-17 05:33:25易采站长站整理

1,是没有回调,,执行顺序是一样但是,我们可以看到p段落还没有隐藏完全,alert就出来
2,是有回调的,执行则是hide完成后在alert
 
 剖析回调
Js代码 


function haveBreakfast(food,drink,callback){
console.log('Having barakfast of' + food + ', '+ drink);
if(callback && typeof(callback) === "function"){
callback();
}
}

haveBreakfast('foast','coffee',function(){
console.log('Finished breakfast. Time to go to work!');
});

 
输出:


Having barakfast of foast,coffee
Finished breakfast. Time to go to work!

这里是创建了一个函数,有三个参数,第三个参数是callback,这个参数必须是个函数。
haveBreakfast函数将所吃的东西记录到控制台中然后调用作为参数传递给它的回调函数。
 
Node.js如何使用回调

node.js中使用filesystem模块从磁盘上读入文件内容的示例
 
Js代码 


var fs = require('fs');

fs.readFile('somefile.txt','utf8',function(err,data){
if(err) throw err;
console.log(data);
});

结果是:somefile.txt里面的内容。
1,fs(filesystem)模块被请求,以便在脚本中使用
2,讲文件系统上的文件路径作为第一个参数提供给fs.readFile方法
3,第二个参数是utf8,表示文件的编码
4,将回调函数作为第三个参数提供给fs.readFile方法
5,回调函数的第一个参数是err,用于保存在读取文件时返回的错误
6,回调函数的第二参数是打他,用户保存读取文件所返回的数据。
7,一旦文件被读取,回调就会被调用
8,如果err为真,那么就会抛出错误
9,如果err为假,那么来自文件的数据就可以使用
10,在本例中,数据会记录到控制台上。
 
再一个,http模块,http模块使得开发人员可以创建http客户端和服务器。

Js代码 


var http = require('http');

http.get({host:'shapeshed.com'},function(res){
console.log("Got response:" + res.statusCode);
}).on('error',function(e){
console.log("Got error:" + e.message);

});

 结果:Got response:200
1,请求http模块,以便在脚本中使用
2,给http.get()方法提供两个参数
3,第一个参数是选项对象。在本示例中,要求获取shapeshed.com的主页
4,第二个参数是一个以响应作为参数的回调函数
5,当远程服务器返回相应时,会触发回调函数。
6,在回调函数内记录响应状态码,如果有错误的话可以记录下来。