Task
用于执行任务的相关函数。
paralleTask
用于并发执行异步任务,可以指定并发数量,返回一个promise
对象。
TIP
mockPromiseTasks
函数用于生成一组异步任务
ts
import { paralleTask, mockPromiseTasks } from '@strive-molu/utils';
// 默认并发数为2
paralleTask(mockPromiseTasks(4)).then(() => {
console.log('所有任务执行完毕');
});
// 指定并发数
paralleTask(mockPromiseTasks(10), 4).then(() => {
console.log('所有任务执行完毕');
});
performTask
自定义执行任务时机函数。
ts
import { performTasks, idlePerformTasks, countPerformTasks, mockPromiseTasks } from '@strive-molu/utils';
// 指定任务在1s后执行
performTasks(mockPromiseTasks(10, true), (chunk) => {
setTimeout(() => {
chunk(() => true);
}, 1000);
});
以下函数基于performTask
实现。
ts
import { idlePerformTasks, countPerformTasks, mockPromiseTasks } from '@strive-molu/utils';
// 基于 requestIdleCallback 来控制任务执行
idlePerformTasks(mockPromiseTasks(10, true));
// 控制每次执行任务的数量,以及任务执行间隔
countPerformTasks(mockPromiseTasks(10, true), 5, 1000);
形参
paralleTask
名称 | 说明 | 类型 | 默认值 |
---|---|---|---|
tasks | 异步任务列表 | array | — |
paralleCount | 同时执行的最大任务数 | number | 2 |
performTask
名称 | 说明 | 类型 | 默认值 |
---|---|---|---|
tasks | 异步任务列表 | array | — |
scheduler | 同时执行的最大任务数 | function | — |
idlePerformTasks
名称 | 说明 | 类型 | 默认值 |
---|---|---|---|
tasks | 异步任务列表 | array | — |
countPerformTasks
名称 | 说明 | 类型 | 默认值 |
---|---|---|---|
tasks | 异步任务列表 | array | — |
count | 同时执行的最大任务数 | number | — |
delay | 每批次任务执行时时间 | number | — |
TS 类型
点我查看代码
ts
interface Task {
(...args: any[]): void;
}
interface PromiseTask {
(...args: any[]): Promise<any>;
}
interface Scheduler {
(chunk: (isGoOn: () => boolean) => void): void;
}