async await 解決非同步問題,這兩個關鍵字是es7提出的,所以測試,node和瀏覽器版本提高一些
##async await 操作基於promise實作的
async await這兩個關鍵字是一起使用,分開使用會錯誤
await 後面只能跟著promise物件
#不熟悉的promise非同步操作的朋友,去看看我promise那邊文章#
<span style="font-size: 18px;">Promise 解决多层嵌套,回调地狱<br>什么叫回调地狱<br>写一个实例,就是恶心的多层欠嵌套<br></span>
function a(){ function b(){ function c(){ } } }
這樣的程式碼看著就不容易維護,效能底下
<span style="font-size: 18px;"><br/></span><span style="font-size: 18px;">下面我们看看fs模块解决异步请求,同步结果的问题<br/><br/></span>
//es7let fs=require('fs');function read(url) { //new Promise 需要传入一个executor 执行器 //executor需要传入两个函数 resolve reject return new Promise((resolve,reject)=>{ //异步读取文件 fs.readFile(url,'utf8',function (err,data) { if(err){ reject(err) }else{ resolve(data); } }) }) };//async await 解决异步问题,基于promise//async await这两个关键字一起使用//await 后面只能跟promise对象async function getData(){ try{ //Promise.all()并发读取 let result =await Promise.all([read('name.txt'),read('age.txt')]); console.log(result); }catch (e){ console.log(e); } } getData();//Promise 解决多层嵌套,回调地狱// 解决异步请求,同步结果的问题
以上是解決node.js裡面fs模組非同步讀寫同步結果的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!