Promise概述。

什么是promise?

  • promise是一种异步编程的解决方案。
  • promise是一个对象。
  • promise分为三个状态。pending (进行) fulfilled (成功) rejected (失败) 。
  • promise状态不受外界影响,一旦发生变化,不会再更改。

如何创建promise?

 Promise()  函数接收的是一个匿名函数回调
 resolve  成功
 reject  失败
上面这两个参数都是函数执行。
{ 
   let promise = new Promise(function (resolve, reject) {
   
       let istrue = false;
       if (istrue) {
         setTimeout(function () {
             resolve('数据');
              }, 1000);
                }
       else {
            reject('失败');
                }
            });

then操作。

Promise的精髓是“状态”,用维护状态、传递状态的方式来使得回调函数能够及时调用,它比传递callback函数要简单、灵活的多。

then中传了两个参数,then方法可以接受两个参数,第一个对应resolve的回调,第二个对应reject的回调。

 p.then((data) => {
    console.log(data);
})
.then((data) => {
    console.log(data);
})
.then((data) => {
    console.log(data);
});

这样按顺序传给resolve的数据,能在接下来的then方法中拿到。

catch操作。

catch就是用来捕获异常的,也就是和then方法中接受的第二参数rejected的回调是一样的。

所以一般来说所有错误处理放在catch中,then中只处理成功的,同时catch还会捕捉resolved中抛出的异常。

p.then((data) => {
    console.log('resolved',data);
}).catch((err) => {
    console.log('rejected',err);
});

all方法。

该方法提供了并行执行异步操作的能力,并且在所有异步操作执行完后并且执行结果都是成功的时候才执行回调。

let Promise1 = new Promise(function(resolve, reject){})
let Promise2 = new Promise(function(resolve, reject){})
let Promise3 = new Promise(function(resolve, reject){})
 
let p = Promise.all([Promise1, Promise2, Promise3])
 
p.then(funciton(){
  // 三个都成功则成功  
}, function(){
  // 只要有失败,则失败 
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值