我們知道nodejs的fs模塊,對文件的操作一般都是異步操作的,例如對文件的讀取操作
const fs = require('fs'); fs.readFile('./a.txt',( error, data )=>{ if(error) throw error; console.log(data); console.log(data.toString()); });
如果異步嵌套頻繁的話,會使的代碼非常難以閱讀和理解,那麼怎麼解決這個問題呢,
node其實已經封裝好了一個模塊:promisify,具體操作如下:
const fs=require('fs'); const promisify=require('util').promisify; const read=promisify(fs.readFile); read('./test/a.js').then((data)=>{ console.log(data.toString()); }).catch((error)=>{ console.log(error); });
其實還有另外一種方法:
const fs=require('fs'); const promisify=require('util').promisify; const read=promisify(fs.readFile); async function readTest() { try { const data= await read('./test/.a.js'); console.log(data.toString()); }catch (error) { console.log(error) } }