await-num-q 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,70 @@
1
+ # await-num-q 限数阀
2
+
3
+ ## 介绍
4
+ 这是一个用于解决异步任务数量太大需要限制异步任务数量的 库,比如浏览器端 一次性发送很多的请求会导致请求挂起,例如在有大量图片加载时 网络不太好会导致后续其他的接口请求挂起得不到反馈,这时需要一个工具来解决同时请求图片的数量不得大于某个值,这样后续的接口请求才能正常的发送。于是此库便诞生了
5
+ ## 下载
6
+ ```sh
7
+ npm i await-num-q
8
+ # or
9
+ pnpm i await-num-q
10
+ # or
11
+ yarn i await-num-q
12
+ ```
13
+
14
+ ## 使用
15
+
16
+ > 导入
17
+ ```js
18
+ import { asyncQueue } from 'await-num-q'
19
+ ```
20
+ > 初始化队列
21
+ ```js
22
+ let q = new asyncQueue(3)// 3 表示能够同时在当前队列执行的任务数量
23
+ ```
24
+ > 执行
25
+ ```js
26
+ async function test(){
27
+ async function _get(){}
28
+ let data = await q.wait(_get) // 这样就能拿到请求的数据 且不会超过指定数量
29
+ }
30
+ ```
31
+ ## api列表
32
+
33
+ ```ts
34
+ export type RunFunBoj = {
35
+ status: "wait" | "ing" | "end";
36
+ target: Function;
37
+ callback?: Function;
38
+ err?: Function;
39
+ };
40
+ export declare class asyncQueue {
41
+ #private;
42
+ constructor(max?: number);
43
+ /**
44
+ * 添加任务
45
+ * @param f 目标函数
46
+ * @param callback 成功回调函数
47
+ * @param err 错误回调函数
48
+ * @returns 添加成功与否
49
+ */
50
+ push(f: Function, callback?: Function, err?: Function): boolean;
51
+ /**
52
+ * 清除运行完成的任务
53
+ */
54
+ clear(): void;
55
+ /**
56
+ * 添加并运行任务 若是没有传入函数 运行 之前传入的任务
57
+ * @param f 目标函数
58
+ * @param callback 成功回调函数
59
+ * @param err 错误回调函数
60
+ * @returns 添加成功与否
61
+ */
62
+ run(f?: Function, callback?: Function, err?: Function): Promise<void>;
63
+ /**
64
+ * 异步运行并得到返回值
65
+ * @param fun 目标函数
66
+ * @returns
67
+ */
68
+ wait(fun: (...arg: any) => any): Promise<any>;
69
+ }
70
+ ```
package/dist/index.js CHANGED
@@ -78,6 +78,7 @@ class asyncQueue {
78
78
  for (let f of __classPrivateFieldGet(this, _asyncQueue_Queue, "f")) {
79
79
  if (f.status == 'wait') {
80
80
  fun = f;
81
+ break;
81
82
  }
82
83
  }
83
84
  if (fun) {
@@ -118,4 +119,4 @@ class asyncQueue {
118
119
  }
119
120
  exports.asyncQueue = asyncQueue;
120
121
  _asyncQueue_Queue = new WeakMap(), _asyncQueue_runNum = new WeakMap(), _asyncQueue_maxNum = new WeakMap();
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsTUFBYSxVQUFVO0lBSW5CLFlBQVksR0FBWTtRQUh4Qiw0QkFBc0IsRUFBRSxFQUFBO1FBQ3hCLDZCQUFVLENBQUMsRUFBQTtRQUNYLDZCQUFVLENBQUMsRUFBQTtRQUVQLElBQUksR0FBRyxFQUFFLENBQUM7WUFDTix1QkFBQSxJQUFJLHNCQUFXLEdBQUcsTUFBQSxDQUFBO1FBQ3RCLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxDQUFDLENBQVcsRUFBRSxRQUFtQixFQUFFLEdBQWM7UUFDakQsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxlQUFlLEVBQUUsQ0FBQztZQUN6QyxPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDO1FBQ0QsSUFBSSxNQUFNLEdBQWM7WUFDcEIsTUFBTSxFQUFFLE1BQU07WUFDZCxNQUFNLEVBQUUsQ0FBQztZQUNULFFBQVE7WUFDUixHQUFHO1NBQ04sQ0FBQTtRQUNELHVCQUFBLElBQUkseUJBQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDeEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ1osT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0QsdUJBQUEsSUFBSSxxQkFBVSx1QkFBQSxJQUFJLHlCQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBQSxDQUFBO0lBQ25FLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDRyxHQUFHLENBQUMsQ0FBWSxFQUFFLFFBQW1CLEVBQUUsR0FBYzs7O1lBQ3ZELElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFBO1lBQy9CLENBQUM7WUFDRCxJQUFJLHVCQUFBLElBQUksMEJBQVEsSUFBSSx1QkFBQSxJQUFJLDBCQUFRLEVBQUUsQ0FBQztnQkFDL0IsT0FBTTtZQUNWLENBQUM7WUFDRCxJQUFJLEdBQUcsR0FBcUIsSUFBSSxDQUFBO1lBQ2hDLEtBQUssSUFBSSxDQUFDLElBQUksdUJBQUEsSUFBSSx5QkFBTyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDckIsR0FBRyxHQUFHLENBQUMsQ0FBQTtnQkFDWCxDQUFDO1lBQ0wsQ0FBQztZQUNELElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ04sSUFBSSxJQUFJLEdBQVEsSUFBSSxDQUFBO2dCQUNwQixJQUFJLENBQUM7b0JBQ0QsR0FBRyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUE7b0JBQ2xCLGlEQUFBLENBQUEsMERBQVksRUFBWixJQUFlLElBQUEsQ0FBQSxNQUFBLENBQUE7b0JBQ2YsSUFBSSxHQUFHLE1BQU0sR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFBO29CQUN6QixJQUFJLEdBQUcsQ0FBQyxRQUFRLFlBQVksUUFBUSxFQUFFLENBQUM7d0JBQ25DLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7b0JBQ3RCLENBQUM7Z0JBQ0wsQ0FBQztnQkFBQyxXQUFNLENBQUM7b0JBQ0wsSUFBSSxHQUFHLENBQUMsR0FBRyxZQUFZLFFBQVEsRUFBRSxDQUFDO3dCQUM5QixHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO29CQUNqQixDQUFDO2dCQUNMLENBQUM7d0JBQVMsQ0FBQztvQkFDUCxpREFBQSxDQUFBLDBEQUFZLEVBQVosSUFBZSxJQUFBLENBQUEsTUFBQSxDQUFBO29CQUNmLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFBO29CQUNsQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUE7Z0JBQ2QsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFRDs7OztPQUlHO0lBQ0csSUFBSSxDQUFDLEdBQXlCOztZQUNoQyxPQUFPLE1BQU0sSUFBSSxPQUFPLENBQXlCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO2dCQUMxRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7WUFDM0IsQ0FBQyxDQUFDLENBQUE7UUFDTixDQUFDO0tBQUE7Q0FDSjtBQTFGRCxnQ0EwRkMifQ==
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsTUFBYSxVQUFVO0lBSW5CLFlBQVksR0FBWTtRQUh4Qiw0QkFBc0IsRUFBRSxFQUFBO1FBQ3hCLDZCQUFVLENBQUMsRUFBQTtRQUNYLDZCQUFVLENBQUMsRUFBQTtRQUVQLElBQUksR0FBRyxFQUFFLENBQUM7WUFDTix1QkFBQSxJQUFJLHNCQUFXLEdBQUcsTUFBQSxDQUFBO1FBQ3RCLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxDQUFDLENBQVcsRUFBRSxRQUFtQixFQUFFLEdBQWM7UUFDakQsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxlQUFlLEVBQUUsQ0FBQztZQUN6QyxPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDO1FBQ0QsSUFBSSxNQUFNLEdBQWM7WUFDcEIsTUFBTSxFQUFFLE1BQU07WUFDZCxNQUFNLEVBQUUsQ0FBQztZQUNULFFBQVE7WUFDUixHQUFHO1NBQ04sQ0FBQTtRQUNELHVCQUFBLElBQUkseUJBQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDeEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ1osT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0QsdUJBQUEsSUFBSSxxQkFBVSx1QkFBQSxJQUFJLHlCQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBQSxDQUFBO0lBQ25FLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDRyxHQUFHLENBQUMsQ0FBWSxFQUFFLFFBQW1CLEVBQUUsR0FBYzs7O1lBQ3ZELElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFBO1lBQy9CLENBQUM7WUFDRCxJQUFJLHVCQUFBLElBQUksMEJBQVEsSUFBSSx1QkFBQSxJQUFJLDBCQUFRLEVBQUUsQ0FBQztnQkFDL0IsT0FBTTtZQUNWLENBQUM7WUFDRCxJQUFJLEdBQUcsR0FBcUIsSUFBSSxDQUFBO1lBQ2hDLEtBQUssSUFBSSxDQUFDLElBQUksdUJBQUEsSUFBSSx5QkFBTyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDckIsR0FBRyxHQUFHLENBQUMsQ0FBQTtvQkFDUCxNQUFLO2dCQUNULENBQUM7WUFDTCxDQUFDO1lBQ0QsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDTixJQUFJLElBQUksR0FBUSxJQUFJLENBQUE7Z0JBQ3BCLElBQUksQ0FBQztvQkFDRCxHQUFHLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtvQkFDbEIsaURBQUEsQ0FBQSwwREFBWSxFQUFaLElBQWUsSUFBQSxDQUFBLE1BQUEsQ0FBQTtvQkFDZixJQUFJLEdBQUcsTUFBTSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUE7b0JBQ3pCLElBQUksR0FBRyxDQUFDLFFBQVEsWUFBWSxRQUFRLEVBQUUsQ0FBQzt3QkFDbkMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtvQkFDdEIsQ0FBQztnQkFDTCxDQUFDO2dCQUFDLFdBQU0sQ0FBQztvQkFDTCxJQUFJLEdBQUcsQ0FBQyxHQUFHLFlBQVksUUFBUSxFQUFFLENBQUM7d0JBQzlCLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7b0JBQ2pCLENBQUM7Z0JBQ0wsQ0FBQzt3QkFBUyxDQUFDO29CQUNQLGlEQUFBLENBQUEsMERBQVksRUFBWixJQUFlLElBQUEsQ0FBQSxNQUFBLENBQUE7b0JBQ2YsR0FBRyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUE7b0JBQ2xCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQTtnQkFDZCxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVEOzs7O09BSUc7SUFDRyxJQUFJLENBQUMsR0FBeUI7O1lBQ2hDLE9BQU8sTUFBTSxJQUFJLE9BQU8sQ0FBeUIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQzFELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtZQUMzQixDQUFDLENBQUMsQ0FBQTtRQUNOLENBQUM7S0FBQTtDQUNKO0FBM0ZELGdDQTJGQyJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "await-num-q",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "一个用于 处理 指定并行异步任务数量的 队列",
5
5
  "keywords":["q","await","async","队列","异步","并行"],
6
6
  "main": "dist/index.js",