es6 promise对象

2018-07-18  本文已影响45人  eks

废话不多,先上代码

function p1(v) {
        return new Promise((resolve, reject) => {
            console.log('p1',v+1);
            if(typeof v==='number'){
                resolve(v+1)
            }else {
                reject('值必须是number类型')
            }
        })
    }
    function p2(v) {
        return new Promise((resolve, reject) => {
            console.log('p2',v+2);
            if(v<10){
                resolve(v+2)
            }else {
                reject('值不能大于10')
            }
        })
    }

    let p=new Promise((resolve, reject) => {
        console.log('start...')
        resolve('5')
    })

    p.then(p1).then(p2).then(p2).then(p2).then(p2).then(p2).then((res)=>{
        console.log('result:',res);
    }).catch(err=>{
        console.log('err:',err);
    })

一、Promise介绍:
1.Promise最大的好处是在异步执行的流程中,把执行代码和处理结果的代码清晰地分离了。
2.Promise可以做很多的事情,比如,有若干个异步任务,需要先做任务1,如果成功后再做任务2,任何任务失败则不再继续并执行错误处理函数。
3.要串行执行这样的异步任务,不用Promise需要写一层一层的嵌套代码。

二、例子解释
1.这里定义了三个对象,p、p1、p2;
2.在p1中规定了传入的值必须是number类型,
如果在p中传入的是string等其他类型,在p1中就会执行reject并执行catch抛出错误(值必须是number类型);


number.png

3.在p2中规定了传入的值必须小于10,
如果在p1得到的值大于等于10,在p2中就会执行reject并执行catch抛出错误(值不能大于10);


10.png

4.条件都满足,执行的结果


result.png
上一篇 下一篇

猜你喜欢

热点阅读