在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 小程序request請(qǐng)求

小程序request請(qǐng)求

想問大家一個(gè)問題,我在app.js里面寫了一個(gè)公共的function,此function里面有request,然后return回傳值,現(xiàn)在問題是request是異步請(qǐng)求,return的時(shí)候請(qǐng)求還未執(zhí)行完,會(huì)傳個(gè)空值過去,這種怎么解決?

回答
編輯回答
瘋子范

你這個(gè) 公共function 接受一個(gè)函數(shù)作為參數(shù)。
request 拿到請(qǐng)求返回值得時(shí)候,執(zhí)行這個(gè)回調(diào)函數(shù)參數(shù)。

  //app.js
  getUserInfo (callback) {
    if (this.globalData.user) {
      callback(this.globalData.user)
    } else {
        wx.request({
            url: 'xxx',
            method: 'POST',
            data: {},
            success: res => {
                this.globalData.user = res.data.data
                callback(res.data.data)
            }
        })
    }
  }

  // index.js
  onLoad() {
    app.getUserInfo(this.getList) // 獲取到getUserInfo結(jié)果后執(zhí)行g(shù)etList函數(shù)
  }

或者,你這個(gè) 公共function 返回1個(gè) Promise 函數(shù),拿到返回值的時(shí)候 resolve 一下。

//app.js
getUserInfo () {
  return new Promise((reslove, reject) => {
    if (this.globalData.user) {
      resolve(this.globalData.user)
    } else {
        wx.request({
            url: 'xxx',
            method: 'POST',
            data: {},
            success: res => {
                this.globalData.user = res.data.data
                resolve(res.data.data)
            }
        })
    }
  })
}

  // index.js
onLoad() {
    app.getUserInfo().then(res => {
        console.log(res)  //  res 就是getUserInfo的 resolve 的值。
    })
}
2017年11月10日 07:07
編輯回答
護(hù)她命
export let http = ({url,method,data}) => {
  let p = new Promise((resolve,reject) => {
    wx.request({
      url,
      data,
      method,
      header: {'content-type':'application/json'},
      success: resolve,
      fail: reject
    })
  })
  return p;
}
使用import { http } from './async.js';
export let getList = (data) => {
  return http({
          url: `${接口}${拼接的字符串}`,
          method:'get',
          data
        })
}
2017年10月3日 13:38