最开始 代码是小程序
//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异步