promise的理解
const flag = false // true
const promise = new Promise((resolve, reject)=>{
if(flag){
resolve("成功了")
}else{
reject("失败了")
}
})
promise.then(data=>{
console.log(data)
}).catch(data=>{
console.log(data)
}).finally(()=>{
console.log("执行完毕")
})
/*
我们可以用 new 关键字来创建一个promise对象
promise有三种状态 pending rejected fullfailed 状态是不可逆的
promise对象比较重要的几个方法.then .catch .finally
如果执行resolve那么会触发then里面的方法
如果执行reject那么会触发.catch里面的方法
不管是 resolve 还是 reject 都会执行finally方法
所以promise 解决了回调地狱的问题和异步的问题(事件循环)
asyns其实返回的就是一个promise对象 所以在实际开发中我们也会用async来代替new promise进行开发*/
const fn = function(params){
return new Promise((resolve, reject)=>{
if(params){
resolve("222成功了")
}else{
reject("222失败了")
}
})
}
fn(true).then((res)=>{
alert(res) // 222成功了
})
const fn2 = async function(){
return 1
}
console.log(fn2()) // 返回的是promise对象 async其实就是对new Promise的封装。返回的是promise对象,再通过.then就可以获取到返回值
fn2().then(res=>{
alert(res) // 1
})

浙公网安备 33010602011771号