Promise 是一个对象,是把多层的嵌套回调,变成一长串的.then()方法的链式调用.可以解决异步的问题,本身不能说promise是异步的,
promise是用来解决两个问题的:
1.解决异步回调的问题,代码难以维护, A函数的输出是B函数的输入这种现象.
2. 支持多个并发的请求,获取并发请求中的数据
const app = getApp();
const baseURL = app.globalData.baseUrl;
const Request = (options) => {
return new Promise((resolve, reject) => {
wx.showLoading()
wx.request({
url: baseURL + options.url || '',
data: options.data || {},
method: options.method || 'POST',
header: {
'Content-Type': 'application/json; charset=UTF-8',
"X-Access-Token": app.globalData.usertoken,
},
responseType: options.responseType || "",
timeout: 15000,
success(res) {
wx.hideLoading()
if (res.data.success) {
resolve(res.data);
} else {
wx.showToast({
title: res.data.message,
icon: "none"
})
};
},
fail(res) {
wx.showToast({
title: '网络开小差了',
icon: "none"
})
reject(res);
}
})
}).then(res => {
console.log(res); // resolve
}).catch(err => {
console.log(err); // 等同于接受 上面的reject返回的失败
})
};
module.exports = {
Request
};