小程序onLoad异步问题,data数据设置成功缺不能在页面上显示?

小程序 文章 2022-03-10 15:40 1902 0 全屏看文

AI助手支持GPT4.0

小程序onLoad异步问题,data数据设置成功缺不能在页面上显示?The applet onLoad asynchronous problem, the data data is successfully set and can not be displayed on the page?

小程序onLoad异步问题,data数据设置成功缺不能在页面上显示?

在做一个订单展示时遇到的情况,只有allOrderS里面的数据在微信wxml里面显示了,想问一下什么原因,怎么解决,push是一个异步函数吗?

      const _ = db.command    db.collection('order').where({      state:_.lt(5)    }).get().then(res=>{      res.data.forEach(element => {        db.collection(element.dbname).doc(element.goods_id).get().then(res=>{          element.f_img_url = res.data.f_img_url        })        if(element.state==0){          this.data.waitPayOrder.push(element);        }else if(element.state==1){          this.data.waitSentOrder.push(element);        }else if(element.state==2){          this.data.waitReceivedOrder.push(element);        }else if(element.state==3){          this.data.completeOrder.push(element);        }      });      this.setData({        allOrderS:res.data      })            console.log(this.data)    })

在做一个订单展示时遇到的情况,只有allOrderS里面的数据在微信wxml里面显示了,想问一下什么原因,怎么解决,push是一个异步函数吗? const _ = db.command    db.collection('order').where({      state:_.lt(5)    }).get().then(res=>{      res.data.forEach(element => {        db.collection(element.dbname).doc(element.goods_id).get().then(res=>{          element.f_img_url = res.data.f_img_url        })        if(element.state==0){          this.data.waitPayOrder.push(element);        }else if(element.state==1){          this.data.waitSentOrder.push(element);        }else if(element.state==2){          this.data.waitReceivedOrder.push(element);        }else if(element.state==3){          this.data.completeOrder.push(element);        }      });      this.setData({        allOrderS:res.data      })            console.log(this.data)    })

回答:

ꪶäꪗღꪖꪸꪀ:

杨宁:也不行
ꪶäꪗღꪖꪸꪀ:不能都命名res
微喵网络:

要在then里setData

杨宁:then在循环里面  在里面设置不是走好几遍吗
Mr.Zhao:

then是异步的,if先执行后执行的then

杨宁:then不是同步的吗
杨宁:而且if判断的时候是有值的
Mr.Zhao:异步的 有值是有值,对不对是另一回事
Mr.Zhao:这俩段不是同步的
杨宁:那success我测试过也不是同步的
杨宁:你的意思是让我把if写进then里面吗
Mr.Zhao:这俩段又是异步的
拾忆:
你要往data内写入数据不能直接用this.data.waitPayOrder.push(element)你在JS里处理完数组再用this.setData一起赋值
杨宁:好的,我试一下
杨宁:不行

-EOF-

AI助手支持GPT4.0


国内超级便宜服务器

摸鱼人热门新闻聚合

钻级赞助商 我要加入

开发者在线工具

第三方支付技术请加QQ群

相关文章
通讯录插件在微信开发者工具、手机扫码预览下显示正常,审核通过后不能稳定显示名称和组织,不知道为何?
企业小商店商家后台管理手机版何时上线?
请问获取手机号phonenumber.getPhoneNumber,不能直接调用官方提供的接口吗?
小程序里能长按识别二维码加微信好友吗?
canvas什么时候支持自定义字体?
随便看看
微信公众号免300认证教程 5164
小程序已经上线,作为管理员无法在小程序数据助手查看数据? 4473
小程序广告组件通过审核,但是小程序内没有显示广告? 4443
企业微信通讯录账号被管理员误/恶意删除,怎么办? 8498
问题? 8119
如何快速搭建抽奖助手小程序(无需代码知识) 5277
许涛 大哥在吗, 要解冻小程序的时候提示信息主体不一致, 能帮忙看下吗? 6549
小程序搜一搜全称搜索不显示 麻烦解决一下!谢谢 5838
我的小程序广告收款主体是个体工商户,每个月邮寄两次发票很是麻烦,我年底的时候打包邮寄一次可以么? 5501
如何解决渲染层网络错误Failed to load media? 16750