Heim  >  Artikel  >  Web-Frontend  >  So lösen Sie das asynchrone Lesen und Schreiben von Synchronisationsergebnissen im fs-Modul in node.js

So lösen Sie das asynchrone Lesen und Schreiben von Synchronisationsergebnissen im fs-Modul in node.js

一个新手
一个新手Original
2017-09-30 09:38:142337Durchsuche

Async-Await löst asynchrone Probleme. Diese beiden Schlüsselwörter wurden von es7 vorgeschlagen, daher wurden die Test-, Knoten- und Browserversionen verbessert.

Async-Await-Betrieb basiert auf Promise-Implementierung

asynchrones WartenDiese beiden Schlüsselwörter werden zusammen verwendet, wenn sie separat verwendet werden

await kann nur von promiseobject gefolgt werden

Für diejenigen, die mit der asynchronen Operation von Promise nicht vertraut sind, lesen Sie meinen Artikel über Promise

<span style="font-size: 18px;">Promise 解决多层嵌套,回调地狱<br>什么叫回调地狱<br>写一个实例,就是恶心的多层欠嵌套<br></span>
function a(){    
function b(){        
function c(){
    }
   }
}

Solcher Code sieht schwierig zu warten aus und seine Leistung ist gering

<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 解决多层嵌套,回调地狱// 解决异步请求,同步结果的问题

Das obige ist der detaillierte Inhalt vonSo lösen Sie das asynchrone Lesen und Schreiben von Synchronisationsergebnissen im fs-Modul in node.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn