node.js 获取异步方法里面数据 的方式
生活随笔
收集整理的這篇文章主要介紹了
node.js 获取异步方法里面数据 的方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第一種 使用回調函數:
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);第三種 使用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()); }); // Promiese 可以把定義好的異步函數 放入Promise里面作為參數, 然后用then獲取異步函數的數據記錄一下:
async 會將其后的函數(函數表達式或 Lambda)的返回值封裝成一個 Promise 對象,而 await 會等待這個 Promise 完成,并將其 resolve 的結果返回出來。
總結
以上是生活随笔為你收集整理的node.js 获取异步方法里面数据 的方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: node.js Promise简单介绍
- 下一篇: node.js将buffer对象转换为j