文章

wx.request({})的请求问题。

最近在做自己的毕业设计,是一个微信小程序的课题,碰到了一个小问题,觉得有必要记录一下。

如图:

我们想在图中展示我们服务的具体信息以及对应的服务人员的姓名。

可是项目信息和用户姓名并不在同一张数据表上,不过在项目信息边上存在对应服务人员的id。

所以最初的构想就是通过两次请求先请求项目信息,然后请求用户信息。可是wx.request({})似乎是异步请求的方式。

所以前后两次分开请求,后边那次无法获取前边那次请求得到的信息。

所以最后将第二次请求放在了第一次请求的存储数据的方法内。

通过在存储数据的过程中 获取到即将存储的项目表中含有的userId,将获取到的信息传入第二次请求中这样即可将两张表的信息都请求到。

(传入userId的方式也不是通过第一次请求完设定的具体对象(program.userId),而是直接通过将第一次请求获取到的信息给到第二次请求地址的方式的方式(res.data.data.userId))

如下:(注意下两个url)

onLoad(option){
      let that = this;
      console.log(option.id);
      wx.request({
        url: 'http://localhost:11000/api/program/'+option.id,
        method:'get',
        header: {
          'content-type': 'application/json', // 默认值
          'token':'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwaG9uZSI6IjY2NjY2NiIsImlzcyI6ImxqbSIsImlkIjoiMSIsInR5cGUiOiIwIiwiZXhwIjoxNzM1NTY1OTk5LCJ1c2VybmFtZSI6IumYs-Wwj-WunSJ9.RUKjyl7aF9O76nukRkpWiZCEMsiaGUeBUhL5HKyzwzg'
        },
        success (res) {
          that.setData({
            program:res.data.data
          })
          console.log(res.data)
          wx.request({
            url: 'http://localhost:11000/api/user/'+ res.data.data.userId,
            method:'get',
            header: {
              'content-type': 'application/json', // 默认值
              'token':'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwaG9uZSI6IjY2NjY2NiIsImlzcyI6ImxqbSIsImlkIjoiMSIsInR5cGUiOiIwIiwiZXhwIjoxNzM1NTY1OTk5LCJ1c2VybmFtZSI6IumYs-Wwj-WunSJ9.RUKjyl7aF9O76nukRkpWiZCEMsiaGUeBUhL5HKyzwzg'
            },
            success (res) {
              that.setData({
                user:res.data.data
              })
              console.log(res.data)
            },
            fail(err){
              console.log(err);
            }
          })
        },
        fail(err){
          console.log(err);
        }
      })
    }
});

这样我们就能够将获取到的项目表信息,用户信息设定为两个具体的对象(program&user) 然后其中的信息我们就可以直接在对应页面上展示。

最终问题得以解决。

License:  CC BY 4.0