Home  >  Article  >  Web Front-end  >  How to solve the asynchronous reading and writing of synchronization results in the fs module in node.js

How to solve the asynchronous reading and writing of synchronization results in the fs module in node.js

一个新手
一个新手Original
2017-09-30 09:38:142336browse

async await solves asynchronous problems. These two keywords were proposed by es7, so the test, node and browser versions are improved.

async await operation is based on promise implementation

async awaitThese two keywords are used together. If used separately, an error will be reported

await can only be followed by promiseobject

For those who are not familiar with the asynchronous operation of promise, please read my article on promise

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

Such code looks difficult to maintain, and its performance is poor

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

The above is the detailed content of How to solve the asynchronous reading and writing of synchronization results in the fs module in node.js. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn