es6语法 Promise和async/await 使用

Promise 作用
  1. 主要用于异步计算
  2. 可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果
  3. 可以在对象之间传递和操作promise,帮助我们处理队列
三种状态

reslove 成功
reject 失败
pending初始状态

使用
  let fun1 = new Promise((reslove,reject)=>{
        setTimeout(()=>{       
            reslove()//成功状态
            console.log('fun1')           
        },1000)
  })
let fun2= new Promise((reslove,reject)=>{
           setTimeout(()=>{       
            console.log('fun2')
            reslove()          
           },3000)
      })
fun1().then(()=>{
     console.log('fun1方法执行完毕')
     fun2().then(()=>{
         console.log('fun2方法执行完毕')
    })
})
输出顺序:'fun1'>'fun1方法执行完毕'>'fun2'>'fun2方法执行完毕'
async 和await 的使用

async 异步 await 等待

  // 写在普通函数前面 表示这是一个处理异步的函数
   async function init(){
       await run5()    
       await run1() //等待当前函数执行完
       await run2()
       await run4()
       await run3()
     
    
   }
   init() //调用异步函数
 
   function run1(){
      setTimeout(()=>{
            console.log('1')                
        },1000)
   }
   function run2(){
     setTimeout(()=>{
          console.log('2')                
        },1000)
   }
   function run3(){
     setTimeout(()=>{
           console.log('3')                
       },1000)
   }
   function run4(){
       new Promise((reslove,reject)=>{
            console.log('4') 
            reslove() 
      })
   }
   function run5(){
     setTimeout(()=>{
            console.log('5')                
       },2000)
   }
   输出顺序:'5'>'1'>'2'>'4'>'3'

结论:Promise 配合 async/await使用:
1.主要解决普通异步函数的回调地狱问题
2.队列化执行使代码结构更加简洁清晰,便于维护,增加代码的可读性

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值