A Network package for MiniProgram
小程序底层网络库封装
Integration
网络库封装
- Promise泛型Promise
- CancelToken 可取消操作
- Retry 网络错误自动重试
- Cache 底层缓存支持(包括并发请求合并)
- Timeout 自定义超时时间
- timestamp 记录请求时间戳
- 每个请求的原生回调接口支持(
onHeadersReceived
事件)和(onProgressUpdate
事件) - Interceptors 拦截器 transform send data / transform response data
- Listeners 全局事件监听
onSend
,onResponse
,onRejected
,onAbort
,onComplete
- 支持全局配置和每个请求单独配置
tips: miniprogram-network
>= 5.0.0 底层默认不在直接使用miniprogram-queue
进行队列封装, 如果有需要可自行引用, 或直接使用 v4.x
- wx.request 自基础库 1.4.0 (2017.07) 开始支持队列
- wx.downloadFile 自基础库 1.4.4 (2017.07) 开始支持队列
- wx.uploadFile 自基础库 2.4.1 (2018.11) 开始支持队列
安装
npm i miniprogram-network
;post'xxx',data.thenconsole.log
配置
通用配置
-
headers
请求头 -
params
URL替换参数 -
baseURL
根URL -
retry
重试次数/自定义重试机制 -
timestamp
是否记录发送和响应时间戳 -
transformSend
输入转换函数(Request,Download,Upload需分别设置) -
transformResponse
输出转换函数 (Request,Download,Upload需分别设置)
不同网络请求单独配置项
-
timeout
请求超时时间 -
cancelToken
取消请求的Token -
onHeadersReceived
header 接受回调 -
onProgressUpdate
进度回调 - Request配置项
- Download配置项
- Upload配置项
缓存配置
全局缓存策略 cacheConfig
-
cacheConfig.expire
缓存时间单位ms
默认10分钟
-
cacheConfig.excludeMethod
string[] 不缓存的操作,默认['POST', 'PUT', 'DELETE', 'TRACE', 'CONNECT']
-
cacheConfig.resultCondition
结果缓存条件,默认isOkResult
(2xx) -
cacheConfig.keyBuilder
缓存key生成规则,修改后excludeMethod
将失效
单个请求设置缓存
-
expire
缓存时间单位ms
默认 使用全局配置
transform 数据转换
默认的transformResponse
直接返回小程序原始的返回数据{statusCode,...}
同时提供了根据状态码返回对应数据的转换方式
; // Request的默认响应拦设为成transformRequestResponseOkData,// 正常2xx返回data部分,否则rejectedREQUESTDefaultstransformResponse = transformRequestResponseOkData;// Download的默认响应拦设为transformDownloadResponseOkData,// 正常2xx返回string,否则rejectedDOWNLOADDefaultstransformResponse = transformDownloadResponseOkData;// Upload默认响应拦截transformUploadResponseOkData,// 与小程序wx.uploadFile 不同之处会尝试进行JSON.parse反序列化字符串// 正常2xx返回data,否则rejectedUPLOADDefaultstransformResponse = transformUploadResponseOkData; DOWNLOAD ; // 参数绑定NetworkNetwork
取消操作 CancelToken (abort)
可通过cancel token 方式取消请求
; // 创建一个 tokensourceconst source = CancelTokensource; ; // 需要取消操作时source;
快速配置 setConfig
; //将Request,Upload,Download的默认baseURL设置为'https://api.newfuture.cc'setConfig'baseURL', 'https://api.newfuture.cc'; //等效方式setConfig
延时重试 delayRetry
; // 间隔1s再次重试,最多重试2次REQUEST.Defaults.retry = delayRetry1000,2;
Cache 缓存
cacheRequest
,cacheGet
与REQUEST
公用默认配置cacheDownload
与DOWNLOAD
公用默认配置
; cacheConfigexpire = 10*60*1000;//设置缓存有效时间// 设置缓存条件,默认响应状态为2xx缓存数据cacheConfig{ return resstatusCode === 200;} //cacheGet 与 Request共用配置;; // cacheDownload 与 Download共用配置;