>  기사  >  웹 프론트엔드  >  node.js의 fs 모듈에서 동기화 결과의 비동기 읽기 및 쓰기를 해결하는 방법

node.js의 fs 모듈에서 동기화 결과의 비동기 읽기 및 쓰기를 해결하는 방법

一个新手
一个新手원래의
2017-09-30 09:38:142353검색

async wait는 비동기 문제를 해결합니다. 이 두 키워드는 es7에서 제안되었으므로 테스트, 노드 및 브라우저 버전이 개선되었습니다.

async wait 작업은 promise

async wait을 기반으로 합니다. 두 개의 키워드를 함께 사용하면 오류가 발생합니다.

await 뒤에는 promiseobject

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으로 문의하세요.