第一种:
通过回调函数实现:
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());
});