function getData(callback){ setTimeout(function(){ var name = 'xxxx'; callback(name); }, 1000); } // 外部获取异步方法里面的数据 采用回调函数的方式 getData(function(data){ console.log(name); });
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);
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()); }); // Promiese 可以把定义好的异步函数 放入Promise里面作为参数, 然后用then获取异步函数的数据