


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年金融租赁服务项目建议书
- 2025年半导体用石英玻璃材料项目发展计划
- 2025年钢增强塑料复合管项目发展计划
- 2025年特种机载装置合作协议书
- 性别差异下的教育心理学如何针对不同性别激发学生潜力
- 教育投资的新趋势游戏化学习平台的融资路径
- 教育政策成效评估的多维度分析
- 未来科技趋势下的教育技术增强现实与虚拟现实的融合应用研究
- 2025年甘肃省靖远县四中物理高一第二学期期末质量跟踪监视试题含解析
- 幼儿教育中教师心理调适的技巧与方法
- 羽毛球知识教育PPT模板
- 电梯安装技术交底完整版
- 氧化铝溶出机组热试方案
- 小学阅读理解提分公开课课件
- esd防静电手册20.20标准
- 教育政策与法规课件
- 养老护理员职业道德27张课件
- 少儿美术课件-《长颈鹿不会跳舞》
- 人教版五年级数学下册单元及期中期末测试卷含答案(共16套)
- GB∕T 17989.1-2020 控制图 第1部分:通用指南
- EN485.32003铝及铝合金薄板、带材和厚板第三部分(译文)
评论
0/150
提交评论