关于#前端#的问题:需要先获取code再执行下面的请求,结果还未获取到code就执行了请求

需要先获取code再执行下面的请求,结果还未获取到code就执行了请求,请问异步要怎么写才对

img

img

可以写这样试试看~

Page({
  onLoad() {
    // 获取code
    const getCode = new Promise((resolve) => {
      wx.login({
        success: (res) => {
          resolve(res.code);
        }
      })
    })
    // 请求获取openId
    const getOpenId = (code) => {
      return new Promise((resolve) => {
        wx.request({
          method: 'GET',
          url: '',
          data: {
            appid: '11',
            js_code: code,
            // ...
          },
          success: (res) => {
            resolve(res.data)
          }
        })
      })
    }
    // 调用
    getCode.then(code => {
      console.log(code);
      return getOpenId(code);
    }).then(res => {
      console.log(res);
    }).catch(err => {
      console.log(err);
    })
  },
})

直接放里面

img

1.异步处理一般三种 回调
2.promise
3.ansyc await

你看你需要哪种

其实也可以不用promise,直接将你下面那个请求封装在一个函数里,当获取code值后再调用那个请求函数就可以了