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

小程序大部分函数和数据库操作都是异步执行的,如果希望同步执行,需要用到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的博客-优快云博客_微信小程序promise的用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

少杰()

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

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

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

打赏作者

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

抵扣说明:

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

余额充值