ConcurrencyController

ConcurrencyController

并发控制器

Constructor

new ConcurrencyController(maxConcurrencyopt)

Source:
Example
// 最多同时运行 3 个异步任务
const controller = new ConcurrencyController(3);

const urls = ['/api/1', '/api/2', '/api/3', '/api/4', '/api/5', '/api/6'];
const results = await Promise.all(urls.map(url => controller.add(() => fetch(url))));

// 获取状态
controller.getStatus();

// 暂停队列
controller.pause();

// 恢复队列
controller.resume();

// 设置最大并发数量,并立即运行队列中的任务。
controller.setMaxConcurrency(4);
Parameters:
Name Type Attributes Default Description
maxConcurrency number <optional>
2

最大并发数量。默认 2

Methods

add(task)

Description:
  • 加入队列

Source:
Parameters:
Name Type Description
task function

异步任务函数。

Returns:

任务的 Promise 对象。

getStatus()

Description:
  • 获取状态

Source:

pause()

Description:
  • 暂停队列

Source:

resume()

Description:
  • 恢复队列

Source:

setMaxConcurrency(maxConcurrency)

Description:
  • 设置最大并发数量,并立即运行队列中的任务。

Source:
Parameters:
Name Type Description
maxConcurrency number

最大并发数量。不能小于 1