微信小程序函数中有wx.request 返回值为undefined 因为request是异步请求

 exchangeRequest: function (discountId, userId) {
    var msg = ''
    wx.request({
      url: 'http://localhost/servlet.ExchangeDiscount?userId=' + userId + '&discountId=' + discountId,
      // 回调成功 
      success: function (res) {
        // 把回传的数据放入discounts
        msg = res.data
   return msg
      },
      fail: function (res) {
    return '调用失败'
      }
    })

  },

这是一开始的函数 

我需要将msg Toast到屏幕上

wx.Toast(that. exchangeRequest(2,1))

但是出来的是空的

因为wx.request是异步请求 还没return时 就已经执行 wx.Toast

所以我改成下面这样

 exchangeRequest: function (discountId, userId) {
    var msg = ''
    wx.request({
      url: 'http://localhost/servlet.ExchangeDiscount?userId=' + userId + '&discountId=' + discountId,
      // 回调成功 
      success: function (res) {
        // 把回传的数据放入discounts
        msg = res.data
        console.log(msg)
        wx.hideLoading()
        wx.showToast({
          title: msg,
        })
      },
      fail: function (res) {
        wx.hideLoading()
        wx.showToast({
          title: '兑换失败',
        })
      }
    })

  },

你可能感兴趣的:(微信小程序)