利用async和await异步操作解决node.js里面fs模块异步读写,同步结果的问题
Posted 学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用async和await异步操作解决node.js里面fs模块异步读写,同步结果的问题相关的知识,希望对你有一定的参考价值。
async await 解决异步问题,这两个关键字是es7提出的,所以测试,node和浏览器版本提高一些
async await 操作基于promise实现的
async await这两个关键字是一起使用,分开使用会报错
await 后面只能跟promise对象
不熟悉的promise异步操作的朋友,去看看我promise那边文章
Promise 解决多层嵌套,回调地狱
什么叫回调地狱
写一个实例,就是恶心的多层欠嵌套
function a(){ function b(){ function c(){ } } }
这样的代码看着就不容易维护,性能底下
下面我们看看fs模块解决异步请求,同步结果的问题
//es7 let 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 解决多层嵌套,回调地狱 // 解决异步请求,同步结果的问题
以上是关于利用async和await异步操作解决node.js里面fs模块异步读写,同步结果的问题的主要内容,如果未能解决你的问题,请参考以下文章
异步编程之Async,Await和ConfigureAwait的关系