微信小程序 async await解决异步问题

本文介绍了如何在微信小程序中利用async和await处理异步函数,特别是在App.js的onLaunch()中验证其用法。通过示例展示了如何在getOpenID()函数中结合Promise实现异步获取openid,并在onLoad()生命周期函数中同步调用。学习此技巧有助于解决异步嵌套问题,提高代码可读性。

小程序大部分函数和数据库操作都是异步执行的,如果希望同步执行,需要用到async 和await这对基友,必须成对出现。

为了快速验证 async/await 可用,在 App.js 的 onLaunch() 事件函数中加一段代码:

(async () => {
    const p = await new Promise(resolve => {
        setTimeout(() => resolve("hello async/await"), 1000);
    });
    console.log(p);
})();

比如获取openid, 首先getOpenID需要借助promise实现,然后才可以使用async 和 await来同步

Page({

getOpenID(){     

    return new Promise((resolve,reject)=>{

      wx.cloud.callFunction({

        name:'getOpenid'

      }).then(res=>{

        let openid = res.result.openid;       

        resolve(openid);

      }).catch(res=>{

        reject(res);

      })

    });    

  },  

/**

   * 生命周期函数--监听页面加载

   */

  async onLoad(options) {       

       const openid = await this.getOpenID();  

   }

})

关于 async 和 await的使用可参照Promise的简单应用(微信小程序版)-解决异步嵌套调用_未知数-zyx的博客-CSDN博客_微信小程序promise的用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少杰()

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值