




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
承诺,王宏远微博:代码为什么微信:37262326,什么是承诺?ES6最重要和最容易使用的特性之一是承诺,但是当你第一次接触承诺时,你会不知所措。什么是商标?看官方或一些文章对它的介绍和用法,也很困惑。承诺到底是做什么的?承诺是异步编程的解决方案。我们什么时候处理异步事件?一个非常常见的场景应该是网络请求。我们封装了一个网络请求的函数,因为我们不能立即得到结果,我们不能简单地返回结果3 4=7。因此,我们经常传入另一个函数,当数据请求成功时,我们通过传入的函数回调数据。如果这只是一个简单的网络请求,那么这个方案不会给我们带来太多的麻烦。然而,当网络请求非常复杂时,就会有一个回调地狱。好吧,让我用一个非常夸张的例子来说明。网络请求的回调地狱,让我们考虑以下场景(夸张地说):我们需要通过url1从服务器加载数据data1,data1包含下一个请求的url2,我们需要通过data1获取url2,从服务器加载数据data2,data2包含下一个请求的url3,我们需要通过data2获取url3,数据data3从服务器加载。包含下一个请求的url4发送网络请求url4。获取最终数据数据4以上的代码有什么问题吗?在正常情况下,不会有问题,它可以正常运行,并获得预期的结果。然而,这种代码很难看,也不容易维护。我们更期待的是一种更优雅的方式来完成这个异步操作。怎么做?就是用承诺。承诺可以非常优雅地解决这个问题。首先,让我们看看承诺的基本语法。这里,我们使用一个定时器来模拟异步事件:假设下面的数据是数据控制台。1秒后从网络请求的日志是我们的处理方法。这是我们过去处理它的方式。用承诺代码替换它的例子会让我们感觉像脱裤子放屁。首先,下面的承诺代码显然比上面的代码更复杂。其次,在下面的承诺代码中包含了什么是解决、拒绝、然后捕获?让我们忽略第一个复杂性问题,因为这样一个屁大的程序根本看不到承诺的真正效果。定时器异步事件分析,让我们首先认真阅读这个程序做了什么?新承诺显然是创建一个承诺对象。括号(resolve,reject)=)显然也是一个函数,我们使用刚刚学习的arrow函数。但是它们是什么呢?首先让我们知道这样一个事实:当创建承诺时,传入的箭头函数是固定的(我们通常是这样写的)。解决和拒绝也是功能。通常,我们会根据请求数据的成功或失败来决定调用哪个。成功还是失败?如果成功了,我们通常称之为解决(messsage)。此时,我们随后的THEN将被调用。如果失败了,通常我们会调用拒绝(错误),这时我们的后续捕获将被调用。好的,这是承诺最基本的用法。首先,当我们在开发中有异步操作时,我们可以用承诺来包装异步操作。异步操作后将有三种状态。让我们一起来看看这三种状态:等待状态,例如网络请求正在进行,或者计时器没有到达时间。满足:满足的状态,当我们主动回拨决心时,我们处于这种状态并将回拨。然后()拒绝:拒绝状态,当我们主动回呼拒绝时,我们处于这种状态并将回呼。catch(),承诺链调用。当我们查看PROMISE的流程图时,我们发现要么是then要么是CATCH可以返回一个Promise对象。因此,我们的代码实际上可以进行链调用:在这里,我们通过承诺直接包装新数据,并将承诺对象返回给承诺。resolvele():将数据包打包到承诺对象中,并调用解析()函数Promise.reject():将数据包打包到承诺对象内部。在内部回调函数reject()中,链调用缩写,简化版本代码:如果我们希望数据被直接打包为Prom
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年交通工程师执业资格考试试题及答案解析
- 2025年机场航空运营专家考试试题及答案解析
- 机电维修基础知识培训
- 2025年物流仓储安全操作题库
- 2025年安全生产保障题及答案
- 希沃课件制作教学设计
- 2025年建筑施工安全培训题及答案
- 2025年安全管理实操题及答案指南
- 2025年大数据技术应用能力提升专项面试模拟题及参考答案
- 2025年数据分析师职业技能水平评价试题
- 二三轮车安全知识培训课件
- 2025年安徽省普通高中学业水平选择性考试(思想政治)科目高考真题+(答案解析版)
- 2025年陕西省单招试题及答案
- 2025年陕西省中考地理试题(含标准答案)
- x酒店项目可行性项目可行性研究报告
- 陕西建筑资质管理办法
- 宝钢质量一贯制管理办法
- 2025年《治安管理处罚法》新修订课件
- 金属非金属地下矿山六大系统建设规范
- 吊顶钢结构转换层施工方案
- 手拉葫芦安全培训
评论
0/150
提交评论