最開始 代碼是小程序
//network.js function POST(url,params) { wx.request({ url: url, data: params, method: 'GET', success: function (res) { console.log('返回結果:') console.log(res.data) return res.data } }) } //login.js const network = require('../../../utils/network.js'); ... //登陸 login: function (login_res) { login_res = login_res.detail.value var url = app.globalData.baseUrl + 'api/login' var params = { username: login_res.username, password: login_res.password } var user_data = network.POST(url,params) console.log(user_data) }
發現這取不到值,由於小程序的請求是異步的。
查資料說須要用到promiseapi
ojbkpromise
查資料+摸索
最終代碼以下:app
//network.js const app = getApp() function POST(url, params) { let promise = new Promise(function (resolve, reject) { wx.request({ url: url, data: params, method: 'POST', success: function (res) { console.log('返回結果:') console.log(res.data) app.netWorkData.result = res.data resolve(); } }) }); return promise } module.exports = { POST: POST } //app.js App({ netWorkData:{ result: { code: -1, msg: '發起請求失敗' } } }) //登陸 login: function (login_res) { login_res = login_res.detail.value var url = app.globalData.baseUrl + 'api/login' var params = { username: login_res.username, password: login_res.password } network.POST(url,params).then(() => { //請求成功的操做 var user_data = app.netWorkData.result }); },
成功
oooojbk異步