@blueking/roll-request
v1.0.2
Published
滚动拉取数据接口的方法集
Downloads
32
Readme
roll-request
滚动拉取数据接口的方法集
安装
npm install @blueking/roll-request
使用
rollRequest 实例
import axios from 'axios';
import rollRequest from '@blueking/roll-request';
// 传入配置,得到一个 rollRequest 实例
const rollRequestInstance = rollRequest({
httpClient: axios,
});
rollReqUseCount 方法
// 使用接口返回的 count 总数,分页获取所有数据,假如一页最大500条,count为1400,那么会自动分多次获取,得到全部数据
// 根据 API 的协议,先使用 count: true 参数获取到总数
const list = await rollRequest({
httpClient: axios,
pageEnableCountKey: 'count',
}).rollReqUseCount<IDataItem>('/api/test', { id: 1 }, { limit: 500 });
console.log(list);
// 支持返回迭代器,isGenerator传入为true
const listGen = await rollRequest({
httpClient: axios,
pageEnableCountKey: 'count',
}).rollReqUseCount<IDataItem>('/api/test', { id: 1 }, { limit: 500 }, true);
const { value, done } = listGen.next();
if (!done) {
const data = await value;
console.log(data.id);
}
rollReq 方法
/// 先获取到第一页的数据,同时得到总数,再根据总数分页获取剩余数据
const list = await rollRequest({
httpClient: axios,
}).rollReq<IDataItem>('/api/test', { id: 1 }, { limit: 500 });
console.log(list);
// 支持返回迭代器,isGenerator传入为true,迭代器的结果为第一页之后的数据
const result = await rollRequest({
httpClient: axios,
}).rollReq<IDataItem>('/api/test', { id: 1 }, { limit: 500 }, true);
const [pageOneData, gen] = result;
console.log(pageOneData, gen);
rollReqUseTotalCount 方法
// 已知总数 total,根据总数分页获取数据
const list = await rollRequest({
httpClient: axios,
}).rollReqUseTotalCount<IDataItem>('/api/test', { data: 1 }, { limit: 10, total: 50 });
console.log(list);
rollReqByDataKey 方法
// 分割 dataKey 指定的数据,多次请求获取全部数据
const list = await rollRequestInstance.rollReqByDataKey<IDataItem>(
'/api/test',
{ ids: [1, 2, 3, 3, 43, 4, 423, 32] },
{ dataKey: 'ids', limit: 4 },
);
console.log(list);