一段代码看懂Promise

2019-12-11 10:49:37 浏览数 (1)

代码语言:javascript复制
let timer1 = function(){
    let p = new Promise((res,rej)=>{
        setTimeout(()=>{
            console.log("我是timer1");
            // res必须包含,没有这个东西你的函数触发.then
            // 表示成功后返回的内容
            res('timer1成功后返回的内容');
        },1500)
    })
    return p;
}
let timer2 = function(){
    let p = new Promise((res,rej)=>{
        setTimeout(()=>{
            console.log("我是timer2");
            res('timer2成功后返回的内容');
        },500)
    })
    return p;
}
let timer3 = function(){
    let p = new Promise((res,rej)=>{
        setTimeout(()=>{
            console.log("我是timer3");
            res('timer3成功后返回的内容');
        },1000)
    })
    return p;
}

// 单个调用
timer1().then((data)=>{
    console.log(data);
})

// 连续调用
timer1().then((data)=>{
    console.log(data);
    return timer2();
}).then((data)=>{
    console.log(data);
    return timer3();
}).then((data)=>{
    console.log(data);
})

//通过all方法调用 注意 这个方式是并行执行的 无法决定顺序
Promise.all([timer1(), timer2(), timer3()]).then(function(results){
    console.log(results);
});

0 人点赞