miniprogram network
1.0.0
小程式網路庫,提供完整
代码自动完成
和类型检查
,支援Promise
、自動重试
、缓存
、取消
、自定义超时
、自动暂停恢复
、全域拦截
、和事件监听
等…Redefine the network API of Wechat MiniProgram, including full
IntelliSense
andType Checking
, withPromise
,retry
,Cache
,CancelToken
,timeout
,ensureOnline
, globalinterceptors
,event listeners
and more.
onHeadersReceived
事件)和( onProgressUpdate
事件) transformSend
/ transformRresponse
自訂資料攔截onSend
, onResponse
, onRejected
, onAbort
, onComplete
npm i miniprogram-network
es5 相容
const Network = require ( 'miniprogram-network' ) ;
// 也可使用 es6 import 写法
// setConfig设置所有网络请求的全局默认配置,一次定义,所有文件中使用均生效
Network . setConfig ( 'baseURL' , 'https://miniprogram-network.newfuture.cc/' )
// 也可Network.REQUEST.Defaults,Network.DOWNLOAD.Defaults,Network.UPLOAD.Defaults 分别设置不同默认配置
Network . REQUEST . Defaults . transformResponse = Network . transformRequestResponseOkData
Network . get ( 'index.html' )
. then ( res => console . log ( res ) )
. finally ( ( ) => { console . info ( 'done' ) } ) //支持 finally操作
Network . patch ( 'items/{id}' , { dataKey : 'dataValue' } , {
params : { id : 123456 } , // 绑定模板参数
retry : 3 , // 重试3次
} ) . then ( ( item ) => console . log ( item ) )
Network . download ( 'network/' , 'lcoalpath' , {
onProgressUpdate : progressUpdateCallBack , //进度回调
transformResponse : Network . transformDownloadResponseOkData , //状态码2xx成功,返回本地路径
} ) . then ( path => console . log ( path ) )
. catch ( console . error )
裝完即用,無需額外配置和類型聲明
import { setConfig , REQUEST , download , transformRequestResponseOkData , transformDownloadResponseOkData , delayRetry } from 'miniprogram-network' ;
// setConfig设置所有网络请求的全局默认配置,一次定义,所有文件中使用均生效
setConfig ( 'baseURL' , 'https://miniprogram-network.newfuture.cc/' ) ;
// 也可通过 REQUEST.Defaults,DOWNLOAD.Defaults,UPLOAD.Defaults 分别设置不同默认配置
REQUEST . Defaults . transformResponse = transformRequestResponseOkData ;
// 请求发送失败时, 间隔1s再次重试,最多重试2次
REQUEST . Defaults . retry = delayRetry ( 1000 , 2 ) ;
REQUEST . get ( 'index.html' )
. then ( res => console . log ( res ) )
. finally ( ( ) => { console . info ( 'done' ) } ) ; //支持 finally操作
REQUEST . patch < Item > ( 'items/{id}' , { dataKey : 'dataValue' } , {
params : { id : 123456 } , // 绑定参数
retry : 3 , // 重试3次
} ) . then ( ( item : Item ) => console . log ( item ) ) ;
download < string > ( 'network/' , 'lcoalpath' , {
onProgressUpdate : ( res ) => console . log ( res ) , //进度回调
transformResponse : transformDownloadResponseOkData , //状态码2xx成功,返回本地路径
} ) . then ( ( path : string ) => console . log ( path ) )
. catch ( console . error ) ;
miniprogram-network
對網路操作做了統一封裝,詳細操作和用法可查看完整miniprogram-network 完整文檔
包含完整的類型定義,結合編輯器(VScode)等,能提供完整的程式碼提示和自動完成功能。
對於TypeScript提供泛型支援,可完整的進行靜態型別檢查。
如果擔心套件依賴多,可使用miniprogram-build 打包小程式rollup 精簡為單一檔案。
tips: 自miniprogram-network
>= 5.0.0 底層預設不在直接使用miniprogram-queue
進行佇列封裝, 如果有需要可自行引用, 或直接使用v4.x
- wx.request 自基礎庫1.4.0 (2017.07) 小程式開始支援佇列
- wx.downloadFile 自基礎庫1.4.0 (2017.07) 小程式開始支援佇列
- wx.uploadFile 自基礎函式庫2.4.1 (2018.11) 小程式開始支援佇列
Request
from miniprogram-request
Upload
from miniprogram-uploader
Download
from miniprogram-downloader
abort
)