利用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 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模块异步读写,同步结果的问题相关推荐
- php node 目录,node.js基于fs模块对系统文件及目录进行读写操作的方法详解
本文主要介绍了node.js基于fs模块对系统文件及目录进行读写操作的方法,结合实例形式分析了nodejs使用fs模块针对文件与目录的读写.创建.删除等相关操作技巧,需要的朋友可以参考下. 如果要用这 ...
- js处理本地.bin音频文件和node.js的fs模块处理本地.bin音频区别
1.js处理本地.bin文件 <body><input type="file" name="" id="fileInput" ...
- Node.js 初识 fs 模块
fs 模块是文件操作的封装,它提供了文件的读取.写入.更名.删除.遍历目录.链接等 Unix 文件系统操作.与其他模块不同的是,fs 模块中所有的操作都提供了 同步 和 异步 两个版本,比如读取文件内 ...
- 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 ...
- 解决Node.js 运行的时候出现中文乱码问题
解决Node.js 运行的时候出现中文乱码问题 一.问题:出现如下乱码 二.解决方案 因为在服务器发送数据,其实是utf-8编码内容 ,但是浏览器不知道你是utf-8编码内容, 浏览器在不知道服务器响 ...
- 第十节:利用async和await简化异步编程模式的几种写法
一. async和await简介 PS:简介 1. async和await这两个关键字是为了简化异步编程模型而诞生的,使的异步编程更简洁,它本身并不创建新线程,但在该方法内部开启多线程,则另算. 2. ...
- 浅析 Node.js 的 vm 模块以及运行不信任代码
为什么80%的码农都做不了架构师?>>> 在一些系统中,我们希望给用户提供插入自定义逻辑的能力,除了 RPC 和 REST 之外,运行客户提供的代码也是比较常用的方法,好处是可 ...
- Node.js学习笔记——模块加载机制及npm指令详解
文章目录 二.模块化 1.模块化的基本概念 2.Node.js 中的模块化 Node.js 中模块的分类 加载模块 Node.js 中的模块作用域 向外共享模块作用域中的成员 Node.js 中的模块 ...
- 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 ...
最新文章
- linux目录档案权限详解,五、Linux的档案权限与目录配置
- VMware ESXi导出OVF模板
- 时频分析:短时傅里叶实现(3)
- 正则-元字符 注意正则表达式中间不要随意加空格
- linux phpunit 安装,PHPUnit安装教程
- 前端学习(689):for循环执行相同代码
- 关于微信小程序swiper的问题
- 新书上市《软件设计师考试考前冲刺预测卷及考点解析(最新版)》
- dcmtk在PACS开发中的应用(基础篇) 作者:冷家锋 第三章 工作列表(Work List)(一)...
- matlab将常值函数转换为变量,MATLAB与科学计算期末复习题题库15.11.12
- [Java] 蓝桥杯ADV-96 算法提高 复数求和
- spring boot @value取不到值_看看大厂如何自定义starter,还真想不到
- 九章算法--寻找数组波峰
- 编码之Base64编码
- 环境变量配置为jdk8,却显示java版本为jdk7
- cad快速选择命令快捷键_CAD人必知的6大CAD操作命令及快捷键
- 微信小程序开发——获取APPID
- 常见计算机网络协议汇总
- 拉普拉斯变换解微分方程
- 老家农村的结婚(二)——故事篇
热门文章
- git 使用基础使用(书推荐《git版本管理》)
- 内存溢出_容易造成单片机内存溢出的几个陷阱
- matlab--离散(discrete)数据绘图
- java httpinvoker漏洞_Spring HttpInvoker 服务端安全验证的和客户端请求配置
- MATLAB批量实现dicom转换为bmp格式
- FPGA之道(83)功能仿真之仿真语法(Graphic Waveform )
- 微软发布新的Azure Pipelines功能和集成
- struts2学习:配置篇值请求处理元素
- 关系型数据库 和 非关系型数据对比 以及 MySQL与Oracle对比
- Hyper-V群集之使用指南