第一种:
通过回调函数实现:
var fs = require('fs);
function getmime(callback){ fs.readFile('./t1.js', function(err, data){// 现在理解,异步方法里还有别的引用 就不会提前释放callback(data);});
}getmime(function(data){console.log(data.toString());
});console.log(1);
第二种方式:
通过事件通知机制
var fs=require('fs');
var events=require('events');var EventEmitter=new events.EventEmitter();function getMime(){fs.readFile('t1.js',function(err,data){console.log(3);EventEmitter.emit('data',data)})}
console.log(1);
getMime();
console.log(2);EventEmitter.on('data',function(mime){console.log(mime.toString());
})
console.log(4);
今天刚从网上看了 Promise , 也可以获取异步方法里面的数据,还不太明白。 先把代码记录下来,
var fs = require('fs');
function getData(){return new Promise((resolve, reject)=>{fs.readFile('t1.js', (err, data)=>{if(err){reject(data);console.log('read fail');} else {resolve(data);}});});
}getData().then((data)=>{console.log(data.toString());
});