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

 

转载于:https://www.cnblogs.com/null11/p/7499121.html

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

  1. php node 目录,node.js基于fs模块对系统文件及目录进行读写操作的方法详解

    本文主要介绍了node.js基于fs模块对系统文件及目录进行读写操作的方法,结合实例形式分析了nodejs使用fs模块针对文件与目录的读写.创建.删除等相关操作技巧,需要的朋友可以参考下. 如果要用这 ...

  2. js处理本地.bin音频文件和node.js的fs模块处理本地.bin音频区别

    1.js处理本地.bin文件 <body><input type="file" name="" id="fileInput" ...

  3. Node.js 初识 fs 模块

    fs 模块是文件操作的封装,它提供了文件的读取.写入.更名.删除.遍历目录.链接等 Unix 文件系统操作.与其他模块不同的是,fs 模块中所有的操作都提供了 同步 和 异步 两个版本,比如读取文件内 ...

  4. node.js使用fs模块的renameSync方法报错“ EXDEV: cross-device link not permitted, rename ‘F‘ -> ‘G“

    异常 当使用fs模块的renameSync()方法时报错如下: Error: EXDEV: cross-device link not permitted, rename 'F:\trash.conf ...

  5. 解决Node.js 运行的时候出现中文乱码问题

    解决Node.js 运行的时候出现中文乱码问题 一.问题:出现如下乱码 二.解决方案 因为在服务器发送数据,其实是utf-8编码内容 ,但是浏览器不知道你是utf-8编码内容, 浏览器在不知道服务器响 ...

  6. 第十节:利用async和await简化异步编程模式的几种写法

    一. async和await简介 PS:简介 1. async和await这两个关键字是为了简化异步编程模型而诞生的,使的异步编程更简洁,它本身并不创建新线程,但在该方法内部开启多线程,则另算. 2. ...

  7. 浅析 Node.js 的 vm 模块以及运行不信任代码

    为什么80%的码农都做不了架构师?>>>    在一些系统中,我们希望给用户提供插入自定义逻辑的能力,除了 RPC 和 REST 之外,运行客户提供的代码也是比较常用的方法,好处是可 ...

  8. Node.js学习笔记——模块加载机制及npm指令详解

    文章目录 二.模块化 1.模块化的基本概念 2.Node.js 中的模块化 Node.js 中模块的分类 加载模块 Node.js 中的模块作用域 向外共享模块作用域中的成员 Node.js 中的模块 ...

  9. Node.js(一、Node.js基础、模块加载机制、包等)

    Node.js(一.Node.js基础.模块加载机制.包等) 1.Node.js基础 1.1.Node是什么 1.2.Node环境安装失败解决方法 1.2.1.Node环境搭建 1.2.2.错误代码2 ...

最新文章

  1. linux目录档案权限详解,五、Linux的档案权限与目录配置
  2. VMware ESXi导出OVF模板
  3. 时频分析:短时傅里叶实现(3)
  4. 正则-元字符 注意正则表达式中间不要随意加空格
  5. linux phpunit 安装,PHPUnit安装教程
  6. 前端学习(689):for循环执行相同代码
  7. 关于微信小程序swiper的问题
  8. 新书上市《软件设计师考试考前冲刺预测卷及考点解析(最新版)》
  9. dcmtk在PACS开发中的应用(基础篇) 作者:冷家锋 第三章 工作列表(Work List)(一)...
  10. matlab将常值函数转换为变量,MATLAB与科学计算期末复习题题库15.11.12
  11. [Java] 蓝桥杯ADV-96 算法提高 复数求和
  12. spring boot @value取不到值_看看大厂如何自定义starter,还真想不到
  13. 九章算法--寻找数组波峰
  14. 编码之Base64编码
  15. 环境变量配置为jdk8,却显示java版本为jdk7
  16. cad快速选择命令快捷键_CAD人必知的6大CAD操作命令及快捷键
  17. 微信小程序开发——获取APPID
  18. 常见计算机网络协议汇总
  19. 拉普拉斯变换解微分方程
  20. 老家农村的结婚(二)——故事篇

热门文章

  1. git 使用基础使用(书推荐《git版本管理》)
  2. 内存溢出_容易造成单片机内存溢出的几个陷阱
  3. matlab--离散(discrete)数据绘图
  4. java httpinvoker漏洞_Spring HttpInvoker 服务端安全验证的和客户端请求配置
  5. MATLAB批量实现dicom转换为bmp格式
  6. FPGA之道(83)功能仿真之仿真语法(Graphic Waveform )
  7. 微软发布新的Azure Pipelines功能和集成
  8. struts2学习:配置篇值请求处理元素
  9. 关系型数据库 和 非关系型数据对比 以及 MySQL与Oracle对比
  10. Hyper-V群集之使用指南