Queue Package for MiniProgram API
小程序底层操作队列化(
wx.request
,wx.downloadFile
,wx.uploadFile
)miniprogram-network默认队列实现
Features:
abort
)npm i miniprogram-queue
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参数兼容 支持 扩展参数:
onProgressUpdate
进度回调函数onHeadersReceived
响应头回调函数jump
(默认false
)是否插队timestamp
(默认false
) 是否记录时间戳,是则complete回调中会包含 一个time
字段
{
send: number,
response: number
}
兼容API
同时 downloadFile
和 uploadFile
支持通过process 参数 之间设置进度回调
//第二个参数为true时优先级最高
requestQueue.push({
url:'https://github.com/',
jump:true,//插队
});
所有操作返回一个Task
对象,可取消操作
注意: 和官方API一致 取消时依然会执行complete(如果配置了)。
var task = wx.request(obj);
task.abort();
var task = queue.push(obj);
task.abort();
DownloadTask.onProgressUpdate(function callback)
UploadTask.onProgressUpdate(function callback)
小程序
onProgressUpdate
API的接口,设计上不太合理, 这个接口放在请求发生时更合适,而非在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){}