Promise简明代码记录

Promise讲解

个人感觉讲的比较好的,忘记了可以反复听~忘记了主要是写的少~忘了就敲一敲吧

常见的异步:Ajax和定时器

Promise是一个类,构造函数,参数接2个行参

Promise是有状态的,前端可以打印查看

resolve

const p1 = new Promise((resolve,reject)=>{
    resolve("P1 任务成功得到的数据");    
})
p1.then(data=>{
    console.log(data);
}).catch(err =>{
    console.log(err);
})

//打印为P1 任务成功得到的数据

reject

const p2 = new Promise((resolve,reject)=>{     
    reject("P2 任务失败得到的数据")
})
p2.then(data=>{
    console.log(data);
}).catch(err =>{
    console.log(err);
})

// 打印为P2 任务失败得到的数据

2 个异步任务

新的promise写到then里,第二个then处理第一个then种promise返回的对象

const p3 = new Promise((resolve,reject)=>{     
    resolve("P3 任务成功得到的数据")    
})
p3.then(data=>{
    console.log(data);
    return new Promise((resolve,reject)=>{
        resolve("P4 任务成功得到的数据");    
    })
}).then(data=>{
    console.log(data);
})

// 打印为
// P3 任务成功得到的数据
// P4 任务成功得到的数据

2个异步任务,第一个出错用catch

const p5 = new Promise((resolve,reject)=>{     
    reject("P5 任务失败得到的数据")    
})
p5.then(data=>{
       return new Promise((resolve,reject)=>{
        resolve("P6 任务成功得到的数据");    
    })
})
.then(data=>{
    console.log(data);
})
.catch(err=>{
    console.log(err)
})

//打印为P5 任务失败得到的数据

2个异步任务,失败利用err(如果有err,就不会走catch)

const p5 = new Promise((resolve,reject)=>{     
    reject("P5 任务失败得到的数据")    
})
p5.then(data=>{
       return new Promise((resolve,reject)=>{
        resolve("P6 任务成功得到的数据");    
    })
},err => {    
    console.log(err);
})
.then(data=>{
    console.log(data);
})

//打印结果为: P5 任务失败得到的数据

Async&await

// 准备一个返回promise的对象函数
function asyncTask () {
    return new Promise((resolve,reject)=>{
        const isSuccess = true;
        if(isSuccess){
            resolve("成功")
        }else{
            reject("失败")
        }

    })
}
// 为使用await的函数添加async
async function main() {
    const data = await asyncTask();
    console.log(data);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值