완전한
代码自动完成
및类型检查
,Promise
지원, 자동重试
,缓存
,取消
,自定义超时
,自动暂停恢复
, 전역拦截
및事件监听
등을 제공하는 미니 프로그램 네트워크 라이브러리
Promise
,retry
,Cache
,CancelToken
,timeout
,ensureOnline
, 글로벌interceptors
,event listeners
등을 사용하여 전체IntelliSense
및Type Checking
포함한 Wechat MiniProgram의 네트워크 API를 재정의합니다.
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를 사용하여 작은 프로그램을 패키지하고 단일 파일로 롤업할 수 있습니다.
팁: 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) 애플릿부터 대기열을 지원합니다.
miniprogram-request
에서 Request
miniprogram-uploader
에서 Upload
miniprogram-downloader
에서 Download
abort
)