小程序wx.request 先后顺序

本文探讨了在微信小程序中使用wx.request时遇到的异步问题。通过示例展示了三个不同的请求(getMovieListData)由于异步性质导致的执行顺序不确定性,并解释了因此可能引发的前端渲染错误。为避免此类问题,建议在data中为相关变量设置初始值。同时,介绍了如何利用返回值并结合对象下标来正确地更新数据,确保在适当的时间设置正确的变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 onLoad: function (options) {
    var inTheatersUrl = app.globalData.doubanBase +"/v2/movie/in_theaters";
    var comingSoonUrl = app.globalData.doubanBase +"/v2/movie/coming_soon";
    var top250Url = app.globalData.doubanBase +"/v2/movie/top250";

    this.getMovieListData(inTheatersUrl);
    this.getMovieListData(comingSoonUrl);
    this.getMovieListData(top250Url);

  },
  getMovieListData(url){
    wx.request({
      url: url,
      method: 'GET',
      header: {
        'Content-Type': 'json'
      },
      success: function (res) {
        console.log(res)
      }
    })
  },

这三个都是wx.request请求,但是他们进行的先后顺序和

    this.getMovieListData(inTheatersUrl);
    this.getMovieListData(comingSoonUrl);
    this.getMovieListData(top250Url);

他们的顺序是不一样的,他们是异步的

所以在使用对象的时候要先给对象在data里面设置一个初始值,否则会报错

(自己理解,因为是异步所以程序很快就走完了,所以就去渲染前端页面,但是此时并没有发现前端页面的变量所以报错了,解决的办法就是在data中设置初始值)

inTheaters:{},

comingSoon:{},

top250:{}

 

那么他们是异步的,如何获取到他们执行函数后获得到的值呢?就是在执行函数时同时传入参数,使用数组或对象下标的方式给变量赋值。

如:

var readyData = {}                                                      //声明一个对象

readyData[settedKey] = movies;               //设置值所在下标

this.setData(readyData)                                            //设置变量成功  settedKey变量名  movies  值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值