首頁  >  文章  >  web前端  >  解決node.js裡面fs模組非同步讀寫同步結果的方法

解決node.js裡面fs模組非同步讀寫同步結果的方法

一个新手
一个新手原創
2017-09-30 09:38:142352瀏覽

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(&#39;fs&#39;);function read(url) {    //new Promise 需要传入一个executor 执行器
    //executor需要传入两个函数 resolve reject
    return new Promise((resolve,reject)=>{        //异步读取文件
        fs.readFile(url,&#39;utf8&#39;,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(&#39;name.txt&#39;),read(&#39;age.txt&#39;)]);
        console.log(result);
    }catch (e){
        console.log(e);
    }
}
getData();//Promise 解决多层嵌套,回调地狱// 解决异步请求,同步结果的问题

以上是解決node.js裡面fs模組非同步讀寫同步結果的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn