promise对象总结

promise对象
promise是Es6新增的一个对象,目标是解决回调地狱的问题,promise对象就表示异步操作,可以把异步操作以同步操作的方式表示出来,promise有一个then方法,then有两个参数,一个是resolve一个是reject,resolve表示异步操作正确完成时执行的函数,reject表示异步操作不成功时执行的函数,
1、声明一个promise对象

let p = new Promise(function(resolve,reject){
	
});

2、then方法返回的是一个promise对象

let p = new Promise(function(resolve,reject){
	
});

p.then(function(){resolve},function(){reject});

3、案例

 function fn3() {
        console.log("fn3开始");
        setTimeout(function () {
            console.log("fn3异步操作完毕!");
        }, 1000);
        console.log("fn3结束");
    }
    fn3();
    function fn2() {
        return new Promise(function (resolve, reject) {
            console.log("fn2开始");
            setTimeout(function () {
                console.log("fn2异步操作完毕!");
                resolve();
            }, 1000);
            console.log("fn2结束");
        });
    }
    fn2();

结果
异步执行导致的结果

用promise对象的then方法


    function fn3() {
        console.log("fn3开始");
        setTimeout(function () {
            console.log("fn3异步操作完毕!");
        }, 1000);
        console.log("fn3结束");
    }
    function fn2() {
        return new Promise(function (resolve, reject) {
            console.log("fn2开始");
            setTimeout(function () {
                console.log("fn2异步操作完毕!");
                resolve();
            }, 1000);
            console.log("fn2结束");
        });
    }

    function fn1() {
        // Promise对象就表示一个异步操作。
        let p1 = new Promise(function (resolve, reject) {
            console.log("fn1开始");
            setTimeout(function () {
                console.log("fn1异步操作完毕!");
                resolve();
            }, 1000);
            console.log("fn1结束");
        });
        return p1
    }
    // .then方法表示异步操作完成之后执行的操作
    fn1().then(fn2).then(fn3)

结果:用了 promise.then方法之后将异步操作变成同步操作
用了 promise.then方法之后将异步操作变成同步操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值