下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AsyncawaitAsyncawait是异这里的业务就是读取1.txt之后根据AsyncawaitAsyncawait是异这里的业务就是读取1.txt之后根据1.txt中的文件路径继续读取别的文件,相比之前回调函数的阅确实强了不少,但我们总觉得类似于这种业务我们能不能有一个更好的解决事实上我们只要使用Async与await就能实现类似于上面的表现形123456789functionreadFile(path){returnnewPromise((resolve,reject)=>{fs.readFile(path,'utf8',(erreject(err);//出错了我们调用reject传递错误对resolve(data);//读取成功使用}functionletpath=path=letresult=console.log(result);}functionreturnnewreject(err);//出错了我们调用reject传递错误对resolve(data);//读取成功使用resolve} returnreadFile(s.toString());//返回Promise对 读出数据2.txt returnreadFile(s.toString());//返回Promise对象读出数据3.txt console.log(s)//返回Promise对象//3.txt文件的内容console.log("错误处理!!!",err);//上面的所有Promies过程出错都可以在此处捕捉 }//async关}//async关键词标识后面的函数是一个异asyncfunction//await函数如果遇到异步函数会阻塞和面代码的执行,直到readFile的状态改letpath=awaitreadFile('1.txt');path=awaitreadFile(path);letresult=awaitreadFile('path')}Async函数到底事实上Async函数本质上就是一个Promise,如果返回值不是一个Promise他会自动将其转换为Promise,返回,上面的代码我们返回了一个字符串常量它发现不是一个Promise对象变回调用Promise.resolve('hello'),然后返回这Await做了什么Await我们可以认为他是Asyncwait的简写,意思很明白就是等待一个异步函数的执行,而且需要注意的是必须包含在async声明的函数中,如果你尝试放在外面就会报其实也很容易理解为什么会需要写在async函数内部,因为await以后会阻塞后面的代码,如果直接用失去了异步的意义,直接用同步代码读取就好了,为什么还要加个await呢?之所以要用awiat就是为了用同步代码的方式写异步调用,123456789constfs=functionreadFile(path){returnnewPromise((resolve,reject)=>{fs.readFile(path,'utf8',(erreject(err);//出错了我们调用reject传递错误对resolve(data);//读取成功使用}}add(x,y){return}asyncfunctiontestleta=await1;//同步代码调用await没有任何意义asyncfunctionreturn"hello!"3letrel=console.log(rel);>>>print //恍然大悟....原来async函数返回的是一个promise//上面的这些代码不//上面的这些代码不需要写await没有任何意义因为本来就是同步的写与不写都一样letdata=awaitreadFile('1.txt');//异步代码加了await会等待状态的改变获取返回值//如果要处理异常怎么办呢?在Async函数中我们处错误用}1asyncfunctiontestlet
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工厂生产承包合同
- 2024货运合同格式范本新版范文
- 2024新版广告合同范本
- 定制办公桌椅及安装协议
- 投资合作谈判技巧
- 招标代理合作协议样本
- 房建工程施工分包协议
- 户外广告业务合作合同参考
- 广东省室内装潢设计合同样本
- 3.1.1椭圆的标准方程【同步课件】
- 2024至2030年中国自动车配件行业投资前景及策略咨询研究报告
- 2024-2030年中国蔗糖行业市场深度调研及发展趋势与投资前景研究报告
- 北师版 七上 数学 第四章 基本平面图形《角-第2课时 角的大小比较》课件
- 外研版小学英语(三起点)六年级上册期末测试题及答案(共3套)
- 北师大版(2024新版)七年级上册生物期中学情调研测试卷(含答案)
- 产品包装规范管理制度
- 2024年海南省中考物理试题卷(含答案)
- 2024统编新版小学三年级语文上册第八单元:大单元整体教学设计
- 第07讲 物态变化(原卷版)-2024全国初中物理竞赛试题编选
- 高危儿规范化健康管理专家共识解读
- DB61T1521.5-2021奶山羊养殖技术规范 第5部分:后备羊培育
评论
0/150
提交评论