首页 > 微信 > 详细

微信小程序-了解async、await、promise

时间:2021-01-09 00:40:35      阅读:69      评论:0      收藏:0      [点我收藏+]

1、async是什么

  async用于声明异步的,常常用于处理回调函数。

  async返回一个promise的对象,可以直接用.then,.catch来处理结果。
  onLoad: function (options) {
    // 声明该方法为异步方法,会返回一个Promise对象
    async function test(){
      return ‘云开发‘
    }
    // var a = test();
    // console.log(a)
    console.log(test())
    test().then((res)=>{
      console.log("ook")
    })
    test().catch(err=>{
      console.log(‘nono‘)
    })
  }

技术分享图片




2、resolve成功之后的返回, reject是失败的返回。


3、await 它会阻止后面的代码运行,因为他后面的代码会等待上一个await完成(resolve)
  await避免产生了回调地狱情况,并且提高了代码的可读性。
  注意:await需要搭配async使用,否则会报错。
 
  当没有使用await时,会直接返回Promise对象,并不会执行完resolve()内容。
  function pro1() {
      return new Promise((resolve, reject) => {
        resolve(1)
      })
    }

    function pro2() {
      return new Promise((resolve, reject) => {
        resolve(2)
      })
    }


    // 不使用await
    const a1 = pro1()
    const a2 = pro2()
    console.log(a1)
    console.log(a2)

执行结果:

技术分享图片

 
使用await时:
    function pro1() {
      return new Promise((resolve, reject) => {
        //延时4秒
        setTimeout(()=>{
          resolve(1)
        },4000)
      })
    }

    function pro2() {
      return new Promise((resolve, reject) => {
        resolve(2)
      })
    }

    async function test2(){
      const a1 = await pro1()
      const a2 = await pro2()
      console.log(a1)
      console.log(a2)
    }
    test2()

执行结果:因为await会阻止后面的代码运行,因为他会面的代码会等待上一个await完成,也就是会执行完resolve()再结束方法。

技术分享图片

 

微信小程序-了解async、await、promise

原文:https://www.cnblogs.com/yihui98/p/14251287.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!