小程序使用promise封装request请求
首先在根目录下创建一个文件夹,如我用的是http,然后在这个文件夹下创建一个js文件。这个js文件中写入
//封装微信网络请求模块 promise----》 wx.request()
export default (url,data,method)=>{ // 导出一个函数 函数中的 url是请求接口地址 data 是发送的参数 method 是请求方式
return new Promise((resolve,rejects)=>{ // 返回一个 promise
wx.request({
url, //请求地址
data, // 请求时携带的参数
method, // 请求方式
success(res){ // 请求成功指定的函数
resolve(res); // 请求成功执行成功的回调,执行的是 then
},
fail(err){ // 请求失败执行的函数
rejects() // 请求失败执行的回调,执行的是 catch
},
})
})
}
然后在创建一个js文件,如request.js文件,这个文件专门用来存放我们的请求接口的地址。代码如下
//接口地址 集合
export default {
home:'/xxx', // 这里写请求地址,一般我们写一个项目,baseUrl 是固定不变的,这时我们可以把后面那些不同的链接地址放到这里。
list:'/list' // 如这是列表页面请求的数据,
}
创建完这2个js后,我们可以在写一个js文件统一管理我们的请求。
//封装请求方法
import http from './http'; // 引入我们封装好的 wx.request
import api from './request'; // 引入我们的请求接口 相当于引入了一个对象 如 {home:'/xxx',list:'/list}
let baseUrl = "http://xxx.xxx.com"; // 这里写我们请求地址共同的链接
export default (data,method)=>{ // 导出
return http(baseUrl+api.home,data,method); // 返回执行的函数 baseUrl+api 字符串拼接,拼接成完整的地址,data用来传参数,method用来定义请求方式
}
最后在我们项目根目录下的app.js文件中引入这个js文件即可
// app.js
import http from './http/api' // 引入我们封装的 wx.request
App({
http // 在这里挂载到属性上
})
然后哪个页面使用就在对应的js文件内引入
const app = new getApp() //引入我们的 app.js文件
/** 生命周期函数--监听页面加载
*/
onLoad: function () {
app.http({},'get').then(res=>{ // 直接调用app中的方法即可 ,第一个参数可以向服务器传递参数,第二个参数是请求方式
console.log(res);
})
},
这样我们的封装就完成了
本文详细介绍了如何在微信小程序中使用Promise封装wx.request,包括创建http模块、管理接口地址、统一请求管理和使用示例。通过封装,简化了请求过程并提高代码复用性。
271

被折叠的 条评论
为什么被折叠?



