填坑——node回调函数

最近写了一些node的脚本,感觉回调函数就是一个大坑,简单的总结于此。

node 异步编程的最直接体现就是回调

同步和异步的区别:同步读取文件信息时会发生阻塞,异步不会。

1.读写文件的回调(异步)

var fs=require("fs")  //引入fs模块
var fileName =  “./haha” // 文件路径
 
//同步开始
var data = fs.readFileSync(fileName);
console.log(data.toString)  //将读出的文件转换成字符串
另一种转换成字符串的方法
var data = fs.readFileSync(fileName,{flag: 'r+', encoding: 'utf8'})
console.log(data)

//异步开始
fs.readFile(__dirname + '/test.txt', {flag: 'r+', encoding: 'utf8'}, function (err, data) {
    if(err) {
     console.error(err);
     return;
    }
    console.log(data);
});

 2,函数中加入callback参数,进行回调

    var a=0;

(1)最简单的一种的回调函数

function setNumber(cb) {
    var a=1;
    var b=a+1;
    cb(b)
}
function getNumber(data) {
    console.log(data)
}
setNumber(getNumber)

 (2)在举个栗子

function findByStaId(staId,cb) {
        getMongosData({staId: staId},function (result) {  //调用一个函数
            if (!result[0]) {
                cb({status: false})
            }
            cb({status: true, stationConfig: result[0]}
        })

    }
findByStaId(staId,function(result){
    console.log(result)
})

猜你喜欢

转载自cctv-lulu.iteye.com/blog/2384578