上一篇已经介绍过,使用promise的方式读取文件,大大的减轻了使用回调地狱的困难。

下面使用async和await结合读取文件实例看看,可以实现同样的效果:

//1. 引入 fs 模块
const fs = require("fs");//读取『为学』
function readWeiXue() {return new Promise((resolve, reject) => {fs.readFile("./resources/为学.md", (err, data) => {//如果失败if (err) reject(err);//如果成功resolve(data);})})
}function readChaYangShi() {return new Promise((resolve, reject) => {fs.readFile("./resources/插秧诗.md", (err, data) => {//如果失败if (err) reject(err);//如果成功resolve(data);})})
}function readGuanShu() {return new Promise((resolve, reject) => {fs.readFile("./resources/观书有感.md", (err, data) => {//如果失败if (err) reject(err);//如果成功resolve(data);})})
}//声明一个 async 函数
async function main(){//获取为学内容let weixue = await readWeiXue();//获取插秧诗内容let chayang = await readChaYangShi();// 获取观书有感let guanshu = await readGuanShu();console.log(weixue.toString());console.log(chayang.toString());console.log(guanshu.toString());
}main();

readWeiXue()与readChaYangShi()与readGuanShu()都返回一个promise的对象;

await后面都是跟一个返回promise对象的函数;

async和await结合读取文件相关推荐

  1. ES8 新特性 ------ async 和 await

    async 和 await async 和 await 代码结合,可以让异步代码像同步代码一样. async 函数 async函数的返回值为 promise 对象 promise 对象的结果由 asy ...

  2. ES6-Promise简介、ES7 新特性及ES8新特性-async和await

    目录 ES6-Promise Promise简介 Promise.prototype.then方法 Promise.prototype.catch方法 ES7 新特性 Array.prototype. ...

  3. Javascript ES6 Promise同步读取文件(使用async、await)

    const fs=require('fs'); const path=require('path');const dirname='D:\\HBuilderX\\Workspace\\NodeJS\\ ...

  4. ES8新特性_async和await结合使用读取文件内容---JavaScript_ECMAScript_ES6-ES11新特性工作笔记050

    然后我们再来看看,我们用async和await,es8中提供的新特性,来结合使用读取文件 首先我引入fs文件系统模块 然后写个函数,读取文件 注意这里我们返回一个promise对象 然后在箭头函数中, ...

  5. JavaScript 异步编程--Generator函数、async、await

    JavaScript 异步编程–Generator函数 Generator(生成器)是ES6标准引入的新的数据类型,其最大的特点就是可以交出函数的执行的控制权,即:通过yield关键字标明需要暂停的语 ...

  6. C# 中的Async 和 Await 的用法详解

    众所周知C#提供Async和Await关键字来实现异步编程.在本文中,我们将共同探讨并介绍什么是Async 和 Await,以及如何在C#中使用Async 和 Await. 同样本文的内容也大多是翻译 ...

  7. 利用async和await异步操作解决node.js里面fs模块异步读写,同步结果的问题

    async await 解决异步问题,这两个关键字是es7提出的,所以测试,node和浏览器版本提高一些 async await 操作基于promise实现的 async await这两个关键字是一起 ...

  8. 【转载】 C# 中的Async 和 Await 的用法详解

    众所周知C#提供Async和Await关键字来实现异步编程.在本文中,我们将共同探讨并介绍什么是Async 和 Await,以及如何在C#中使用Async 和 Await. 同样本文的内容也大多是翻译 ...

  9. 一文看懂async和“await”关键词是如何简化了C#中多线程的开发过程

    一文看懂"async"和"await"关键词是如何简化了C#中多线程的开发过程 当我们使用需要长时间运行的方法(即,用于读取大文件或从网络下载大量资源)时,在同 ...

最新文章

  1. 庖丁解牛Nop:控制反转--IOC和DI
  2. 以下选项不是python打开方式的是-模拟试卷 A
  3. VS2013常用快捷方式
  4. Android学习笔记之自定义Toast
  5. php中的rand,预测PHP的rand()的输出
  6. initializeAdvisorChain
  7. Core IO学习心得
  8. 电脑测速软件_联通你我【宽带提速】让网速飞!超实用的宽带测速提速攻略来啦!...
  9. webview传递参数给html,uniapp与webview之间的相互传值
  10. 煤岩分析仪测定煤的镜质体反射率和煤显微组分
  11. sqlite数据库下载安装和初步操作和所遇到的问题
  12. linux中安装无线网卡驱动,在linux下安装无线网卡驱动
  13. 复杂网络-小世界网络WS模型
  14. [C++] [OpenGL] 基于GLFW+GLAD的OpenGL简单程序
  15. 感恩节:美国人的春节
  16. 论剑江湖服务器维护,《论剑:江湖》老玩家谈前期流程攻略
  17. 烤仔观察 | 从 KuCoin 被盗聊起,盘一盘那些年我们丢过的币
  18. [初级前端工程师]网络相关知识
  19. 用计算机自动写作文,电脑写一篇作文用说明方法
  20. 【深度学习】入门之keras

热门文章

  1. ubuntu16.04 安装docker-ce,解决libltdl7版本过低的问题
  2. 梯度迭代树回归(GBDT)算法介绍及Spark MLlib调用实例(Scala/Java/python)
  3. Spark RDD使用详解4--Key-Value型Transformation算子
  4. Spark性能优化指南:高级篇
  5. 史上最全Java面试266题:算法+缓存+TCP+JVM+搜索+分布式+数据库
  6. mac 安装使用 webp 来压缩图片
  7. 关于Bitmap中的inBitmap变量的学习与使用
  8. 电子邮件收发原理和实现(POP3, SMTP)
  9. [2011山东ACM省赛] Identifiers(模拟)
  10. 荷兰警方错买300万欧元Office套件 法院:微软无需退款