20200.9.24.叶梦宇proimse

function one(next){
console.log('One run start');
setTimeout(()=>{
next()
},2000)
// console.log(2);
}
function two(next){
console.log('one end');
console.log('two start');
setTimeout(()=>{
next()
},2000)
}
function three(){
console.log('two end');
console.log('three start run');
setTimeout(()=>{
console.log('比赛结束');
},2000)
}

注意:以下的调用方式就是回调地狱,如果有足够多的异步会写很多的调用传参,
最后就是实参调形参。

one( function(){
two(function(){
three()
})
})

promise管理异步进程
    let pro = new Promise((resolve,rejected)=>{
        reresolve(false);
        // rejected('李权')
    })
    // pro.catch((err)=>{
    //     console.log(err);
    // })
    pro.then((data)=>{
        console.log(data);
        return new Promise((resolve,rejected)=>{
            resolve('叶梦宇')
            // rejected('李权')
        })
    }).then((data)=>{
        console.log(data);
    }).catch((data)=>{
        console.log(data);
    })
    

promise有三个状态 正在进行pending,还没有判断任务是否成功.是一个链式调用
reresolve()任务成功执行
rejected()任务执行失败.

每个promise都有then用来承接任务成功的下一个调用任务
then也两个任务成功和失败.
catch专门承接失败的值
 let pro = new Promise((resolve,rejected)=>{
        setTimeout(()=>{
            console.log(1);
            resolve()
        },4000)
    }).then(()=>{
       return new Promise((resolve,rejected)=>{
           setTimeout(()=>{
               console.log(2);
               resolve()
           },2000)
       })
        
    }).then(()=>{
        setTimeout(()=>{
            console.log(3);
        },1000)
    })

利用promise来管理异步任务

function One(){
    console.log('比赛开始');
    console.log('one running');
    return Promise.resolve(setTimeout(()=>{
        Two()
    },2000))
}
function Two(){
    console.log('one end');
    console.log('two start ');
    return Promise.resolve(
        setTimeout(()=>{
            Three()
        },2000)
    )
}
function Three(){
    console.log('two end');
    console.log('three 开始');
    setTimeout(()=>{
        console.log('比赛结束');
    },2000)
}
One()
只用一个one()就可以调用一二三

学习心得

学不懂的地方真的要开口问清楚,不能不明不白的混过去,问过之后再按自己的方法写笔记真的会记得很清楚.

标签

评论

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1