微信小程序
如果不想在每个项目里重复封装 wx.request 的 Promise 形式,可以使用平台快捷入口 createWechatRequestGuard。
平台快捷入口
javascript
import { createWechatRequestGuard } from '@hydd/request-guard/platforms/wechat';
import { duplicate, retry } from '@hydd/request-guard/capabilities';
export const request = createWechatRequestGuard(wx.request, {
capabilities: [
duplicate(),
retry()
],
baseURL: 'https://api.example.com',
getHeaders() {
return {
token: wx.getStorageSync('token')
};
},
notify(payload) {
wx.showToast({ title: payload.message, icon: 'none' });
},
rules: [
{ method: 'post', duplicate: true },
{ method: 'get', retry: true }
]
});
await request({
url: '/order/submit',
method: 'POST',
data: { orderId: '12345' }
});baseURL 和 getHeaders 是平台层的便利参数,只负责请求参数映射,不属于 core 能力配置。
小程序包体优化
小程序对包体积敏感,建议从 @hydd/request-guard/core 按需引入能力,只打包真正用到的部分。详见 全量入口与按需入口。
熔断状态存储
小程序环境没有 sessionStorage / indexedDB,熔断状态会自动降级为内存存储。建议保持默认 storage: 'memory',把熔断状态视为单次会话级。详见 熔断守护 - 跨端持久化说明。
