var http = {
get:(url, obj = undefined) => {
var promise = new Promise((resolve, reject) => {
wx.request({
url: baseUrl+url,
method: 'GET',
header: {
'content-type': 'application/x-www-form-urlencoded',
'mid': mid,
'token': token
},
data: obj,
success: (data) => {
if (data.data.retcode == 1) {
resolve(data.data)
} else {
console.log('前端故障');
reject(data.errMsg)
}
},
fail:(msg) => {
console.log('后端故障')
reject(data.errMsg)
}
})
})
return promise;
},
post: (url, obj) => {
var promise = new Promise((resolve, reject) => {
wx.request({
url: baseUrl+url,
method: 'POST',
header: {
'content-type': 'application/x-www-form-urlencoded',
'mid': mid,
'token': token
},
data: obj,
success: (data) => {
if (data.data.retcode == 1) {
resolve(data.data)
} else {
console.log('前端故障');
reject(data.errMsg)
}
},
fail: (msg) => {
console.log('后端故障')
reject(data.errMsg)
}
})
})
return promise;
}
}
先贴代码,自己修改,保存为common.js,在app.js中引用,在使用时直接调用htpp.get(url,obj)或者http.post(url,obj)即可,
这里封装了wx.request()方法,调用接口的返回值为promise对象,
小程序支持ES6的语法,可以使用promise(whatever).then((res)=>{whatever}).catch()的方法解决小程序函数并发的问题.
新手上路,有可改进的地方还不吝赐教.