小程序ajax封装

使用Promise的方法封装ajax请求

// 发送ajax请求
/*
* 1. 封装功能函数
* 1. 功能点明确
* 2. 函数内部应该保留固定代码(静态的)
* 3. 将动态的数据抽取成形参,由使用者根据自身的情况动态的传入实参
* 4. 一个良好的功能函数应该设置形参的默认值(ES6的形参默认值)
* 2. 封装功能组件
* 1. 功能点明确
* 2. 组件内部保留静态的代码
* 3. 将动态的数据抽取成props参数,由使用者根据自身的情况以标签属性的形式动态传入props数据
* 4. 一个良好的组件应该设置组件的必要性及数据类型
* props: {
* msg: {
* required: true,
* default: 默认值,
* type: String
* }
* }
*
* */
import config from './config'
export default (url, data={}, method='GET') => {
return new Promise((resolve, reject) => {
// 1. new Promise初始化promise实例的状态为pending
wx.request({
url: config.host + url,
data,
method,
header: {
cookie: wx.getStorageSync('cookies')?wx.getStorageSync('cookies').find(item => item.indexOf('MUSIC_U') !== -1):''
},
success: (res) => {
// console.log('请求成功: ', res);
if(data.isLogin){// 登录请求
// 将用户的cookie存入至本地
wx.setStorage({
key: 'cookies',
data: res.cookies
})
}
resolve(res.data); // resolve修改promise的状态为成功状态resolved
},
fail: (err) => {
// console.log('请求失败: ', err);
reject(err); // reject修改promise的状态为失败状态 rejected
}
})
})
}

export 和 export default 的区别

参考:https://www.cnblogs.com/dexlux/p/15865775.html

posted on   朝朝暮Mu  阅读(123)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示