miniprogram-network npm version

A Network package for MiniProgram

小程序底层网络库封装

Integration

网络库封装

tips: miniprogram-network >= 5.0.0 底层默认不在直接使用miniprogram-queue进行队列封装, 如果有需要可自行引用, 或直接使用 v4.x

安装

npm i miniprogram-network
import {post} from 'miniprogram-network';
post('xxx',data).then(console.log)

配置

通用配置

不同网络请求单独配置项

缓存配置

全局缓存策略 cacheConfig

单个请求设置缓存

transform 数据转换

默认的transformResponse直接返回小程序原始的返回数据{statusCode,…}

同时提供了根据状态码返回对应数据的转换方式

import {
    REQUEST, transformRequestResponseOkData,
    DOWNLOAD, transformDownloadResponseOkData,
    UPLOAD, transformUploadResponseOkData,
} from 'miniprogram-network';

// Request的默认响应拦设为成transformRequestResponseOkData,
// 正常2xx返回data部分,否则rejected
REQUEST.Defaults.transformResponse = transformRequestResponseOkData;
// Download的默认响应拦设为transformDownloadResponseOkData,
// 正常2xx返回string,否则rejected
DOWNLOAD.Defaults.transformResponse = transformDownloadResponseOkData;
// Upload默认响应拦截transformUploadResponseOkData,
// 与小程序wx.uploadFile 不同之处会尝试进行JSON.parse反序列化字符串
// 正常2xx返回data,否则rejected
UPLOAD.Defaults.transformResponse = transformUploadResponseOkData;

DOWNLOAD.download('url')
    .then(path=>{
        console.log(path);//string
    }).catch(res=>{
        console.error(res);//objct
    });

// 参数绑定
Network.put('items/{id}',data,{
        params: {id:123456}, // Object绑定模板参数
    }).then(console.log)
Network.put('items/{0}',data,{
        params: [123456], // 数组绑定模板参数
    }).then(console.log)

取消操作 CancelToken (abort)

可通过cancel token 方式取消请求

import { get, CancelToken } from 'miniprogram-network';

// 创建一个 tokensource
const source = CancelToken.source();

get('items', { skip: 100 }, { 
    // 配置 cancelToken
    cancelToken: source.token 
});

// 需要取消操作时
source.cancel('cancel the get');

快速配置 setConfig

import { setConfig } from 'miniprogram-network';

//将Request,Upload,Download的默认baseURL设置为'https://api.newfuture.cc'
setConfig('baseURL', 'https://api.newfuture.cc');

//等效方式
setConfig({
    baseURL:'https://api.newfuture.cc'
})

延时重试 delayRetry

import { delayRetry,REQUEST } from 'miniprogram-network';

// 间隔1s再次重试,最多重试2次
REQUEST.Defaults.retry = delayRetry(1000,2);

Cache 缓存

import {
    cacheConfig, // 缓存配置
    cacheGet, // 与get方法一致,自动使用cache
    cacheDownload, // 与download方法一致,自动使用cache
    cacheRequest, // 与request方法一致,自动使用cache
    } from 'miniprogram-network';

cacheConfig.expire = 10*60*1000;//设置缓存有效时间
// 设置缓存条件,默认响应状态为2xx缓存数据
cacheConfig.resultCondition = function(res){
    return res.statusCode === 200;
}

//cacheGet 与 Request共用配置
cacheGet('xxx').then(resolve);
cacheGet('xxx').then(resolve);

// cacheDownload 与 Download共用配置
cacheDownload('xxx').then();

LifeCycle

详情说明miniprogram-network-life-cycle