收藏
回答

小程序请求怎么做到异步啊?

我已经用Promise封装请求了,但还是异步的,看下代码吧

封装promise:

const post=(url,data)=>{
  return new Promise((resolve,reject)=>{
    wx.request({
      url:url,
      method:'POST',
      dataType:'json',
      data:data,
      header:{'content-type'"application/x-www-form-urlencoded"},
      success:function(res){
          resolve(res.data)
      },
      failfunction() {
          reject("请求数据失败");
      },
    })
  })
}


请求问题:

let data;
if(this.data.list){
  data=this.data.list;
}else{
   util.post(url,reqData).then((res)=>{
    console.log(res); //1
    data=res.data.list;
  });
}
console.log(data); //2


每次2比1先打印,感觉这种用的还是比较多的,想问下该怎么解决这个问题?

回答关注问题邀请回答
收藏

3 个回答

  • 拾忆
    拾忆
    2020-11-09

    async await 试一下

    2020-11-09
    有用 1
    回复 3
    • @:@
      @:@
      2020-11-09
      用async已经可以了,上线的时候不用引入什么吧?
      2020-11-09
      回复
    • 拾忆
      拾忆
      2020-11-09回复@:@
      不要的,详情设置这个就行了
      2020-11-09
      回复
    • @:@
      @:@
      2020-11-09
      知道了,谢谢了
      2020-11-09
      回复
  • this
    this
    2020-11-09

    小程序已经支持async await的用法,不过要开启增强编译

    2020-11-09
    有用 1
    回复 4
    • @:@
      @:@
      2020-11-09
      上线的时候会有影响吗
      2020-11-09
      回复
    • this
      this
      2020-11-09回复@:@
      可以参考这个https://developers.weixin.qq.com/community/develop/doc/000c8abaa7c6b074f4e87321756401,好像我也没试过,我一般都是用uniapp开发,不点增强编译也可以使用这个
      2020-11-09
      回复
    • this
      this
      2020-11-09回复this
      小程序我就不是很确定了
      2020-11-09
      回复
    • @:@
      @:@
      2020-11-09
      看到了,开发者工具会自动注入辅助函数,进代码包了
      2020-11-09
      回复
  • 陈宇明
    陈宇明
    2020-11-09

    支持async/await语法

    2020-11-09
    有用
    回复
登录 后发表内容
问题标签