Promise基础

2018-09-02  本文已影响2人  大菜鸟呀
基本使用:
    var a=1;
        new Promise((resolve,reject)=>{
            setTimeout(()=>{
                a=10;
                resolve(); 改为成功状态
            },2000)
        }).then(()=>{
            console.log(a)
        })
--------------------------------------------
        var a=1;
        new Promise((resolve,reject)=>{
            setTimeout(()=>{
                a=10;
                reject();//改为失败状态
            },2000)
        }).then(()=>{
            console.log(a)
        },()=>{
            console.log('失败状态')  在then的第二个参数中体现
        })

值的传递:

        
        new Promise((resolve,reject)=>{
            //resolve,reject 可以传递参数,传递的参数 给后面的then()使用
            setTimeout(()=>{
                var a=10;
                resolve(a)
            
            },2000)
        }).then((a)=>{
            console.log(a)
        },()=>{
            console.log('失败状态')
        })

连续出发的状态:

        new Promise((resolve,reject)=>{
            resolve()
        }).then(()=>{
            console.log(1)
        },()=>{
            console.log('2')
        }).then(()=>{
            console.log(3)
        },()=>{
            console.log('4')
        })
返回:1、3
--------------------------------------
        new Promise((resolve,reject)=>{
            reject()
        }).then(()=>{
            console.log(1)
        },()=>{
            console.log('2')
        }).then(()=>{
            console.log(3)
        },()=>{
            console.log('4')
        })
返回:2、3
---------------------------------------
        new Promise((resolve,reject)=>{
            reject()
        }).then(()=>{
            console.log(1)
        },()=>{
            console.log(2);
            return new Promise((resolve,reject)=>{
            reject();
            })
        }).then(()=>{
            console.log(3)
        },()=>{
            console.log(4)
        })
返回:2、4

铺获失败,并终止执行:

        new Promise((resolve,reject)=>{
            resolve()
        }).then(()=>{
            console.log(1);
            return new Promise((resolve,reject)=>{
            reject('失败了');
            })
        }).then(()=>{
            console.log(3)
        }).catch((err)=>{
            console.log(err)
        })
在1中失败以后,3不再执行
注意: catch以后的then还是会执行的,catch铺获的是所在位置以前的错误
上一篇 下一篇

猜你喜欢

热点阅读