Skip to content

微信小程序

如果不想在每个项目里重复封装 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' }
});

baseURLgetHeaders 是平台层的便利参数,只负责请求参数映射,不属于 core 能力配置。

小程序包体优化

小程序对包体积敏感,建议从 @hydd/request-guard/core 按需引入能力,只打包真正用到的部分。详见 全量入口与按需入口

熔断状态存储

小程序环境没有 sessionStorage / indexedDB,熔断状态会自动降级为内存存储。建议保持默认 storage: 'memory',把熔断状态视为单次会话级。详见 熔断守护 - 跨端持久化说明

基于 MIT 许可发布