es6中promise对象

promise的初衷

promise设计初衷就是解决回调地狱(回调函数层层嵌套就是回调地狱)

创建promise对象

    let pro = new Promise((resolve, reject) => {
        console.log(resolve);
        console.log(reject);
        resolve(123)
    })
     console.log(pro);

promise的三种状态和转换

promise有三种状态:

    pending:初始化
    fulfilled:成功  resolve()方法执行时
    rejected:失败   reject()方法执行时

三者之间的转换

    pending初始化===>fulfilled成功
     pending初始化===>rejected失败

then()方法

then()方法:用于绑定处理操作后的处理程序。用于成功后 参数是回调函数 下一个then()方法的参数是上一个then()方法的返回值

   let pro = new Promise((resolve, reject) => {
        console.log(resolve);
        console.log(reject);
        resolve(123)
    })
     console.log(pro);
     pro.then((res) => {
        console.log(2);
        console.log(res);
        return res
    }).then((res_1) => {
        console.log(res_1);
    }

catch()方法

catch()方法:只接受一个参数,用于处理操作异常的业务。用于失败后,参数是一个回调函数

    let pro = new Promise((resolve, reject) => {
        console.log(resolve);
        console.log(reject);
        resolve(123)
    })
     console.log(pro);
     pro.catch(eor => {
        console.log(eor);
    })

promise.all()方法

promise.all()方法 接受一个数组作为参数,数组的元素是Promise实例对象,当参数中的实例对象的状态都为fulfilled时,Promise.all()才会有返回。

    let pro1 = new Promise(function (resolve, reject) {
        setTimeout(function () {
            resolve('实例1操作成功')
        }, 2000)
    })
    // 创建实例prom2
    let pro2 = new Promise(function (resolve) {
        setTimeout(function () {
            resolve('实例2操作成功')
        }, 1000)
    })
    Promise.all([pro1, pro2]).then(function (result) {
        console.log(result);
    })

promise.race()方法

promise.race()方法 只要有一个状态发生变化(不管是成功fulfilled还是异常rejected),它就会有返回,其他实例中在发生变化,它也不管了。

    let pro3 = new Promise(function (resolve) {
        setTimeout(function () {
            resolve('实例1操作成功')
        }, 1000)
    })
    // 初始化实例pro4
    let pro4 = new Promise(function (resolve, reject) {
        setTimeout(function () {
            resolve('实例2操作失败')
        }, 2000)
    })
    Promise.race([pro3, pro4]).then(function (result) {
        console.log(result);
    }).catch(function (error) {
        console.log(error);
    })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值