首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Promise对象用法

Promise

用于异步操作,它表示一个尚未完成且预计在未来完成的异步操作

优势:将异步操作以同步的流程表示出来,方便阅读

将数据请求和数据处理明确分开,结构明确好看。

不用它的话,代码的书写顺序和逻辑结构是不一致的(当有异步任务时)

三个状态:

pending:初始值

fulfilled:操作成功

rejected:操作失败

Pomise是一个构造函数,它里面有1个参数,该参数是一个函数,函数里面有两个参数,参数名我们一般用resolve,reject,这两个参数都是函数,是系统给我们提供的,我们直接调用就可以。

Promise封装异步操作

var p=new Promise(fucntion(resolve,reject){

$.ajax({

url:'xxx',

success:function(dsata){   resolve();

error:function(err){  reject();}

                })

})

Promise异步操作结果处理

then方法 :返回的是Promise对象,不是Promise对象都会被包裹成Promise对象

catch方法:异步操作失败后会执行这个方法

注意的事项:resolve和reject只有第一次执行有效,多次调用没有任何作用,promise实例对象状态一旦改变就不能再变,而.then .catch方法可以被调用多次

任务执行顺序:

先判断任务是同步还是异步,先执行完同步任务,然后在去执行异步任务

异步任务分为:宏任务和微任务(.then,catch.finall目前的只有这三个),

执行一个宏任务过程中遇到微任务,将微任务放到微任务队列中,执行一个宏任务,执行当前队列中的所有的微任务

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200608A0707C00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券