当前位置: 首页 > news >正文

海珠企业网站建设食品商务网-网站建设

海珠企业网站建设,食品商务网-网站建设,app拉新推广代理平台,易思网站管理系统收费转载自 十分钟快速了解 ES6 Promise 什么是Promise Promise最早由社区提出并实现#xff0c;典型的一些库有Q#xff0c;when#xff0c; bluebird等#xff1b;它们的出现是为了更好地解决JavaScript中异步编程的问题#xff0c;传统的异步编程最大的特点就是地狱般的回…转载自 十分钟快速了解 ES6 Promise 什么是Promise Promise最早由社区提出并实现典型的一些库有Qwhen bluebird等它们的出现是为了更好地解决JavaScript中异步编程的问题传统的异步编程最大的特点就是地狱般的回调嵌套一旦嵌套次数过多就很容易使我们的代码难以理解和维护。而Promise则可以让我们通过链式调用的方法去解决回调嵌套的问题使我们的代码更容易理解和维护而且Promise还增加了许多有用的特性让我们处理异步编程得心应手。 如何创建Promise ES6给我们提供了一个原生的构造函数Promise我们可以看一下这个构造函数 下面我们先来创建一个promise下面是一个简单的示例 下面来解释一下上面的代码 【1】因为Promise是一个构造函数所以我们使用了new操作符来创建promise。 【2】构造函数Promise的参数是一个函数暂时叫它func这个函数func有两个参数resolve和reject它们分别是两个函数这两个函数的作用就是将promise的状态从pending等待转换为resolved已解决或者从pending等待转换为rejected已失败。 【3】创建后的promise有一些方法then和catch。当然我们也可以人为的在Promise函数上添加一些满足我们自己需求的方法方便每一个promise对象使用。 如果我们使用一些ES6的语法的话我们上面的代码会更加简洁 其实可以这样理解Promise函数体的内部包裹着一个异步的请求或者操作或者函数然后我们可以在这个异步的操作完成的时候使用resolve函数将我们获得的结果传递出去或者使用reject函数将错误的消息传递出去。 Promise对象的一些方法 Promise对象可以通过使用then方法将上一步返回的结果获取过来不管是resolved还是rejected可以通过使用catch方法捕获Promise对象在使用catch之前的异常。 首先来说一下then方法的使用 我们可以看到then方法可以接受两个函数作为参数第一个函数是用来处理resolve的结果第二个是可选的用来处理reject的结果。也就是说我们在创建p这个Promise对象的时候通过函数resolve传递出去的结果可以被p的第一个then方法中的第一个函数捕获然后作为它的参数。通过函数reject传递出去的结果可以被p的第一个then方法中的第二个函数捕获然后作为它的参数。 当然我们还可以在每一个then方法中创建新的Promise然后将这个Promise对象返回之后我们就可以在后面的then方法中继续对这个对象进行操作。下面是一个简单的例子 从上面的代码中我们可以看到一旦创建一个Promise对象之后我们就可以使用then方法来进行链式的调用而且我们可以把每一次的结果都返还给下一个then方法然后在下一个then方法中对这个值进行处理。每一个then方法中都可以再次新创建一个Promise对象然后返还给下一个then方法处理。 Promise还有另一个方法catch这个方法其实是then方法的一种特例这个特例就是 .then(null, rejection)相当于我们不使用then方法的第一个函数只是用第二个函数catch函数比较简单就是用来捕获之前的then方法里面的异常我们可以简单的来看一个例子 上面代码的输出结果如下 progress... VM141:9 Error: fail(…)我们可以使用catch函数来捕获整个then函数链中的异常。 Promise的一些方法 Promise.all方法用来包装许多个Promise实例然后组成了一个新的Promise对象新的Promise对象的状态由前面几个被包裹的Promise对象的状态决定如果前面的Promise都被resolve了那么新的Promise的状态也是resolve的只要有一个Promise被reject了那么组成的新的Promise的状态也是reject的。 可以看下面一个例子 上面的代码的输出结果如下 [ Promise { pending },Promise { pending },Promise { pending } ] [ 1, 2, 3 ] // 3s后输出的结果Promise.race方法和上面的Promise.all有点类似都是包装许多的Promise对象然后组成了一个新的Promise对象但是使用Promise.race的含义是只要包裹的的Promise对象中有一个的状态发生了改变那么组成的这个新的Promise对象的状态就是上面那个率先改变的Promise实例的状态。 下面是一个简单的例子 上面程序的输出结果如下 [ Promise { pending },Promise { pending },Promise { pending } ] 1 // 是最先改变状态的那个Promise实例resolve的值Promise.resolve方法主要是将一个值转变为一个Promise对象然后使它具有Promise的一些方法和特性为了满足我们一些特殊情况下的要求。 下面是一个简单的例子 上面的输出结果如下 [ null, 0, hello, { then: [Function: then] } ]a thenable obj // Promise.resolve方法会将具有then方法的对象转换为一个Promise对象然后就立即执行then方法。Promise.reject方法和Promise.resolve方法一样只不过通过Promise.reject方法产生的Promise对象的状态是rejected的下面是一个示例 let p Promise.reject(fail); p.catch((err) {console.log(err); }); // fail 上面的内容把ES6中新增的Promise的基本使用方法给大家讲了一下希望对大家有多帮助。
http://www.pierceye.com/news/762241/

相关文章:

  • 做网站前产品经理要了解什么搜索引擎优化免费
  • 广州网站建设技术方案营销网站推广策略
  • 郑州网站建设、中国菲律宾铁路项目
  • 潜江网站开发学校网站建设领导小组
  • 桂林临桂区建设局网站厦门 微网站建设公司哪家好
  • 如何用云服务器搭建个人网站有些人做网站不用钱的,对吗?
  • 月嫂网站建设方案建设网站询价对比表模板
  • 医院网站建设 价格低深圳市高端网站建设
  • 太原做学校网站的公司网站免费观看
  • 企业网络营销是什么seo教程百度云
  • wordpress 下载站模板高清免费观看电视网站
  • 网站后期维护怎么做招c1驾驶员300元一天
  • 番禺区移动端网站制作山西省两学一做网站
  • 网上销售 网站建设浙江创都建设有限公司网站
  • 网站商城的公司运营结构html5 app开发工具
  • 酒类网站建设方案案中山网站建设公司排名
  • wordpress怎么做子页面如何刷seo关键词排名
  • 网站怎样做免费优化有效果成都十大好的装修公司
  • 网站外链分析工具新闻发布会主持词
  • 网站开发哪个工具学做网站需要懂什么
  • 一般做推广网站的客户需求仕什么赣州市城乡建设局官方网站
  • 中山网站搜索引擎优化婚庆策划公司的商业模式
  • 百度云主机做网站天津展示型网站建设外包
  • 做公司网站利润营销型企业网站系统模板下载
  • 怎样在绍兴e网做网站衡水网站优化
  • 网站建设现在还有没有市场优秀网站建设报价
  • 兰州网站维护公司网站规划有哪些内容
  • 简单展示网站模板电脑网页打不开
  • 陕西省建设局网站手把手教 个人网站开发
  • 重庆网站制作网站后台上传缩略图