miniprogram-network

miniprogram-queue npm version

Queue Package for MiniProgram API

小程序底层操作队列化(wx.request, wx.downloadFile,wx.uploadFile)

miniprogram-network默认队列实现

Features:

Install(安装)

npm i miniprogram-queue

Usage(使用)

import {WxQueue} from 'miniprogram-queue';
//创建请求队列
const requestQueue = new WxQueue(wx.request,10);
// const uploadQueue = new WxQueue(wx.uploadFile,10);
// const downloadQueue = new WxQueue(wx.downloadFile,10);

// 发送请求
const task = requestQueue.push({
    url:'https://github.com/NewFuture/miniprogram-network/'
});

// task.abort() 可取消操作

API

参数

与官网API参数兼容 支持 扩展参数:

兼容API

同时 downloadFileuploadFile 支持通过process 参数 之间设置进度回调

jump (插队)

//第二个参数为true时优先级最高
requestQueue.push({
    url:'https://github.com/',
    jump:true,//插队
});

Abort (取消操作)

所有操作返回一个Task对象,可取消操作

注意: 和官方API一致 取消时依然会执行complete(如果配置了)

Progress (进度支持)

小程序onProgressUpdateAPI的接口,设计上不太合理, 这个接口放在请求发生时更合适,而非在Task创建后。

此处保留了对onProgressUpdate的兼容适配,同时提供了可通过参数(progress)传入的方法


const task =uploadQueue.push({
    // 其他参数
    onProgressUpdate:processCallback// callback function
    onHeadersReceived:console.log
});
// function processCallback(progress,currentBytes,totalBytes){}
// obj update object
const task = wx.uploadFile(obj);
// 保留原生调用方式支持
task.onProgressUpdate(processCallback); // callback function
// function processCallback(progress,currentBytes,totalBytes){}