html52.com
我爱小程序-开发者交流社区

小程序网络库 (TypeScript支持+axios API )

小程序网络库

  • promise + finally

  • 网络错误自动重试 (可配置)

  • JavaScript兼容和TypeScript泛型支持

  • 全局参数配置

  • CancelToken 可取消

  • 底层队列维护

  • 自定义请求拦截/响应拦截(全局和单个请求): 适配不同API的定义方式

  • 全局事件监听:  方便统一记录处理各个时期或返回的log

  • axios 风格 API



文档: https://miniprogram-network.newfuture.cc/

miniprogram-network

小程序基础网络库,支持 Javascript & TypeScript

Redefine the network API of Wechat MiniProgram.

GitHub: NewFuture/miniprogram-network

Main Packages 主要模块和功能

  • miniprogram-network 小程序网路库合集 小程序网路库合集
  • miniprogram-request 小程序请求库  小程序请求库
    • [x] Promise支持+finally+泛型
    • [x] CancelToken 取消支持
    • [x] Queue 底层队列维护,支持插队
    • [x] retry 网络错误重试
    • [x] Interceptors 自定义请求/响应拦截
    • [x] Listeners 事件监听
    • [x] OnHeadersReceived 响应头回调
    • [x] axios like API
  • miniprogram-uploader 小程序上传库  小程序上传库
    • [x] Promise支持+finally+泛型
    • [x] Cancelable 可取消
    • [x] OnProgressUpdate 进度回调
    • [x] OnHeadersReceived 响应头回调
    • [x] Queue 底层队列维护,支持插队
    • [x] retry 网络错误重试
    • [x] Interceptors 自定义请求/响应拦截
    • [x] Listeners 事件监听
  • miniprogram-downloader 小程序下载库  小程序下载库
    • [x] Promise支持+finally+泛型
    • [x] Cancelable 可取消
    • [x] Queue 底层队列维护,支持插队
    • [x] retry 网络错误重试
    • [x] OnProgressUpdate 进度回调
    • [x] OnHeadersReceived 响应头回调
    • [x] Interceptors 自定义请求/响应拦截
    • [x] Listeners 事件监听
  • miniprogram-queue 小程序API队列封装  小程序API队列封装
    • [x] 可自动注入/手动管理
    • [x] 支持取消操作(abort)
    • [x] OnProgressUpdate 进度回调
    • [x] OnHeadersReceived 响应头回调
    • [x] 支持插队
  • miniprogram-fetch 小程序中使用Fetch API
    • [x] 自动队列支持
  • miniprogram-promise 小程序异步API转Promise
    • [x] Finally Promise (支持finally)
    • [x] cancelable/abort (可取消的Promise)
  • miniprogram-network-life-cycle 网络操作流程和事件  网络操作流程和事件

Examples 示例代码

JavaScript

var Network = require('miniprogram-network');

// setConfig设置所有网络请求的全局默认配置,一次定义,所有文件中使用均生效
// 也可Network.Request.Defaults,Network.Download.Defaults,Network.Upload.Defaults 分别设置不同默认配置
Network.setConfig('baseURL','https://miniprogram-network.newfuture.cc/')

Network.get('index.html')
    .then(res=>console.log(res))
    .catch(console.error)
    .finally(()=>{console.info('done')});

Network.patch('items/{id}',{dataKey:'dataValue'},{
        params: {id:123456}, // 绑定参数
        transformResponse: Network.transformRequestResponseOkData,// 响应2xx操作成功直接返回数据
    }).then((item)=>console.log(item))
    .catch(console.error);

Network.dowanload('network/','lcoalpath',{
        onProgressUpdate:progressUpdateCallBack,// 进度回调
        retry:3,// 重试3次
        transformResponse: Network.transformDownloadResponseOkData, // 根据状态码只返回2xx对应的本地文件名
    }).then(path=>console.log(path))
    .catch(console.error);

TypeScript

注: TS开启完整的定义支持,依赖小程序官方定义 miniprogram-api-typings

import {setConfig,Request,Download,transformRequestResponseOkData,transformDownloadResponseOkData} from 'miniprogram-network';

// setConfig设置所有网络请求的全局默认配置,一次定义,所有文件中使用均生效
// 也可通过Request.Defaults,Download.Defaults,Upload.Defaults 分别设置不同默认配置
setConfig('baseURL','https://miniprogram-network.newfuture.cc/');

Request.get('index.html')
    .then(res=>console.log(res))
    .catch(console.error);
    .finally(()=>{console.info('done')});

Request.patch<Item>('items/{id}',{dataKey:'dataValue'},{
        params: {id:123456}, // 绑定参数
        transformResponse:transformRequestResponseOkData, // 响应2xx操作成功直接返回数据
    }).then((item:Item)=>console.log(item))
    .catch(console.error);

Download.dowanload<string>('network/','lcoalpath',{
        onProgressUpdate:progressUpdateCallBack,// 进度回调
        retry:3,// 重试3次
        transformResponse: transformDownloadResponseOkData, // 根据状态码只返回2xx对应的本地文件名
    }).then((path:string)=>console.log(path))
    .catch(console.error);

更多用法和配置参看miniprogram-request,miniprogram-downloader,miniprogram-uploader

网友回复

smater:

smater:

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付