ES6promise构造函数

promise

  • 构造函数,是ES6中提出的异步编程解决方案,同步操作的异步代码,可以用来解决回调地狱
    首先promise是一个对象 如果使用的时候需要new Promise参数是一个一个回调函数
    回调函数中有2个参数 resolve(成功) reject(失败) 在异步操作的内部进行调用
    同时也可以进行传值,但是传值只能传递一个值
    如果通知成功或者失败以后可以通过then去执行下一步操作.then的参数是2个回调函数
    第一个回调函数是成功的回调 第二个回调是失败的回调失败的回调也可以catch()
    构造一个 Promise ,最基本的用法如下:
   var promise = new Promise(function(resolve, reject) {
           if (...) {  // succeed
               resolve(result);
           } else {   // fails
               reject(Error(errMessage));
           }
      });

jQuery的ajax返回的是promise对象吗?
不是,jquery的ajax返回的是deferred(延迟)对象,通过promise的resolve()方法将其转换为promise对象。

promise只有2个状态,成功和失败,怎么让一个函数无论成功还是失败都能被调用?
使用promise.all(),Promise.all方法用于将多个Promise实例,包装成一个新的Promise实例。

处理一个以promise实例为元素的数组:
promise.all() promise.race()

promise应用:

  • ajax封装
    将ajax的数据请求和数据处理分别放在不同的模块中进行管理,降低后期维护成本,便于管理。
    1:首先,将所有的url放在一个模块中统一处理。
    2:第二步,将所有的数据请求这个动作放在同一个模块中统一管理。
    3:第三步:就是拿到数据并且处理数据了。

  • *图片加载的问题
    有一些图片需要放置在某一个块中,比如头像,比如某些图片列表。可是源图片的尺寸可能很难保证长宽比例都是一致的,
    如果我们直接给图片设定宽高,就有可能导致图片变形。变形之后高大上的页面就直接垮掉了。
    因此为了解决这个问题,我们需要一个定制的image组件来解决这个问题。我们期望图片能够根据自己的宽高比,合理的缩放,
    保证在这个块中不变形的情况下尽可能的显示更多的内容。获取图片的原始宽高,需要等到图片加载完毕之后才能获取。
    此时就需要调用promise对象

  • 自定义弹窗的处理
    利用Promise,当我们点击确认时,状态变成resolved,点击取消时,状态变成rejected。这样也方便将弹窗生成与后续的操作处理区分开来。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hyduan200

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值