promise

promise//
1.异步操作封装成1个函数
2.该函数返回promise 对象
3.通过链式调用解决异步问题
4.每个promise 对象有2个方法 then chath
5.中断链式调用 抛出一个错误让catch 捕获 reject() throw err
6.链式调用中的err 不会终止 程序执行成功执行reslove,执行外部的.then程序失败执行reject,执行外部的.catch程序

function fun1(){
setTimeout(()=>{
console.log(1)
setTimeout(()=>{
console.log(2)
setTimeout(()=>{
console.log(3)
},500)
},1000)
},3000)
}

function fun1(){
return new Promise((reslove,reject)=>{
setTimeout(()=>{
console.log(1)
if(true){
reslove(‘ok1’)
// 成功执行 reslove 可以触发外部的then 方法
}else{
reject(‘err1’)
// 失败执行 reject 可以触发外部的catch 方法
}
},1000)
})
}

function fun2() {
return new Promise((reslove,reject)=>{
setTimeout(()=>{
console.log(2)
if(true){
reslove(‘ok2’)
}else{
reject(‘err2’)
}
},500)
})
}

function fun3() {
return new Promise((reslove,reject)=>{
setTimeout(()=>{
console.log(3)
if(true){
reslove(‘ok3’)
}else{
reject(‘err3’)
}
},100)
})
}

fun1()
.then((data)=>{
//fun1 成功执行
console.log(data)
return fun2()
})
.then((data)=>{
//fun2 成功执行
console.log(data)
return fun3()
})
.then((data)=>{
//fun3 成功执行
console.log(data)
throw new Error(‘err’)
})
.then(()=>{
console.log(‘你好’)
})
.catch((err)=>{
console.log(2222)
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值