简单粗暴理解 Promise

// Promise对象实例会接收两个参数:resolve、reject。
// 这两个参数本身就是函数,是由JavaScript提供的,开发人员不需要自行部署。
//这里实例化Promise对象的时候你可以理解为占位方法(假的方法,或者接口)没有具体实现的方法
// 这里 a>10模拟成功,其他认为失败了
function Promise_Test(a){
return new Promise((resovleInterface,rejectInterface)=>{
        if(a>10){
            resovleInterface('回调成功');
        }else{
            rejectInterface ('回调失败');
        }
    }
)};


//去实现接口方法了上面的
// resovleInterface:成功时候调用   res 就是resovleInterface的参数
// rejectInterface :失败的时候调用 reje 就是rejectInterface的参数
function resovleimplement(res){
    console.log(res);
}
function rejectlement(reje){
    console.log(reje);
}

// 调用Promise_Test返回Promise对象
//传个9模拟失败状态
 Promise_Test(9).then(resovleimplement,rejectlement)
// 传个11模拟成功状态
Promise_Test(11).then(resovleimplement,rejectlement)

// *************************************

// 箭头函数简写,注意THEN接收两个函数,前面为成功函数,后面为失败函数
// 9失败,所以他会调用后面的函数
Promise_Test(9).then(null,(res)=>{
    console.log('箭头函数:'+res)
})
// 11成功他会调用前面的函数,
Promise_Test(11).then((res)=>{
    console.log('箭头函数:'+res)
})

以上脚本可以直接在谷歌浏览器-控制台运行(f12-Console)

在这里插入图片描述

最后发下文档说明
1、Promise对象的状态不受外界影响。

Promise对象有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态,这也是Promise这个名字的由来,它翻译过来是“承诺”的意思,表示其他手段无法改变。

2、一旦状态改变,就不会再变,任何时候都可以得到这个结果。

Promise对象的状态改变,只有两种可能:

从pending变为fulfilled和从pending变为rejected,只要这两种情况发生,状态就凝固了,不会再变了,会一直保持这个结果,这时就称为 resolved(已定型);

如果改变已经发生了,你再对Promise对象添加回调函数,也会立即得到这个结果。这与事件(Event)完全不同。事件的特点是,如果你错过了它,再去监听,是得不到结果的。

03

Promise参数

Promise对象实例会接收两个参数:resolve、reject。这两个参数本身就是函数,是由JavaScript提供的,开发人员不需要自行部署。

resolve函数的作用是将Promise对象的状态从“未完成”变为“成功”,在异步操作成功时调用,并将异步操作的结果作为参数传递出去。

reject函数则是将promise对象的状态由“未完成”变为“失败”,在异步操作失败时调用,并作为参数传递出去。

此外Promise对象除了这两个参数外,其实例对象还有还有两个方法供使用,即then()方法和catch()方法。then()方法是调用成功时的回调函数,catch()方法用于指定发生错误时的回调函数。

这里特别需要强调一下,then()方法返回的是一个Promise实例对象,因此可以采用链式调用,即then()方法后面再调用另一个then()方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值