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
|
最大并发数量。默认 |
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 | 最大并发数量。不能小于 |