微信小程序异步转同步如何实现?(亲测可行)

2023-02-20 15:51:22 浏览数 (1)

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

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

   //同步请求接口的公共方法-用到的地方需要配合使用async await才能调用(封装示例)

    wx_tb_request(url,method=’get’,data={}){

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

        // 异步请求

        wx.request({

          url: url,

          method: method,

          data: data,

          dataType: ‘json’,

          header: {

          ‘content-type’: method == ‘GET’?’application/json’:’application/x-www-form-urlencoded’,

          ‘Accept’: ‘application/json’

           },

           success:(res)=>{

            resolve(res.data);//返回的就是接口完整数据-打印res的话会包含header头等信息

           },

           fail:(err)=>{

            reject(err);

           }

        });

      })

      },

/**

*  那个地方需要调用,所在的方法就需要使用async声明,里面才可以(同时await声明一下)调用异步请求(封装示例)

*/

     /********轮播 */

    async lunbo() {

       var res=await app.wx_tb_request(app.domain ’/api/index/lunbo’,’post’);

      if(res.code==1){

         this.setData({

          imgUrls:res.data,

      })

    }

未经允许不得转载:肥猫博客 » 微信小程序异步转同步如何实现?(亲测可行)

0 人点赞