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
})

  

posted @ 2022-06-08 11:35  我是一名好程序员  阅读(28)  评论(0编辑  收藏  举报