微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

1、async是什么

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

  async返回一个promise的对象,可以直接用.then,.catch来处理结果。
  onl oad: 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()再结束方法

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐