a-js-tools 0.6.2 → 0.7.0

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 CHANGED
@@ -21,6 +21,7 @@ npm install --save a-js-tools
21
21
  - `isBrowser` 是否为浏览器环境
22
22
  - `isNode` 是否为 Node 环境
23
23
  - `createConstructor` 构造构造函数
24
+ - `sleep` 你的线程太累了,让它丫的睡一会吧
24
25
 
25
26
  ## class 名称转化
26
27
 
package/cjs/index.cjs CHANGED
@@ -9,6 +9,7 @@ var autoEscapedRegExp = require('./src/regexp/autoEscapedRegExp.cjs');
9
9
  var isNode = require('./src/isNode.cjs');
10
10
  var createConstructor = require('./src/object/createConstructor.cjs');
11
11
  var index = require('./src/array/index.cjs');
12
+ var sleep = require('./src/sleep.cjs');
12
13
  var intersection = require('./src/array/intersection.cjs');
13
14
  var union = require('./src/array/union.cjs');
14
15
  var difference = require('./src/array/difference.cjs');
@@ -29,6 +30,7 @@ exports.isBrowser = isNode.isBrowser;
29
30
  exports.isNode = isNode.isNode;
30
31
  exports.createConstructor = createConstructor.createConstructor;
31
32
  exports.enArr = index.enArr;
33
+ exports.sleep = sleep.sleep;
32
34
  exports.intersection = intersection.intersection;
33
35
  exports.union = union.union;
34
36
  exports.difference = difference.difference;
@@ -0,0 +1,36 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ *
5
+ * ## 线程休息
6
+ *
7
+ * 但从调用到执行完毕总是与期望的时间并不相吻合,除非执行是线型的(也不保证时间的严格性)
8
+ *
9
+ * - 宏任务:整体代码、setTimeout、DOM 事件回调、requestAnimationFrame、setImmediate、setInterval、I/O操作、UI渲染等
10
+ * - 微任务:Promise的then/catch/finally、process.nextTick(Node.js)、MutationObserver、queueMicrotask(显示添加微任务)等
11
+ *
12
+ * <span style="color:#ff0;">*Node.js中的process.nextTick优先级高于其他微任务*</span>
13
+ *
14
+ * @param delay 睡觉时长(机器时间,毫秒为单位)
15
+ * @returns 🈳
16
+ * @example
17
+ *
18
+ * ```ts
19
+ * import { sleep } from 'a-js-tools';
20
+ *
21
+ * console.log(Date.now()); // 1748058118471
22
+ * await sleep(1000);
23
+ * console.log(Date.now()); // 1748058119473
24
+ *
25
+ * ```
26
+ *
27
+ */
28
+ async function sleep(delay = 1000) {
29
+ if (!isFinite(delay) || delay < 0)
30
+ throw new TypeError('delay 应该是一个正常的数值');
31
+ if (delay === 0)
32
+ return Promise.resolve();
33
+ return new Promise(resolve => setTimeout(resolve, delay));
34
+ }
35
+
36
+ exports.sleep = sleep;
package/mjs/index.mjs CHANGED
@@ -7,6 +7,7 @@ export { autoEscapedRegExp } from './src/regexp/autoEscapedRegExp.mjs';
7
7
  export { isBrowser, isNode } from './src/isNode.mjs';
8
8
  export { createConstructor } from './src/object/createConstructor.mjs';
9
9
  export { enArr } from './src/array/index.mjs';
10
+ export { sleep } from './src/sleep.mjs';
10
11
  export { intersection } from './src/array/intersection.mjs';
11
12
  export { union } from './src/array/union.mjs';
12
13
  export { difference } from './src/array/difference.mjs';
@@ -0,0 +1,34 @@
1
+ /**
2
+ *
3
+ * ## 线程休息
4
+ *
5
+ * 但从调用到执行完毕总是与期望的时间并不相吻合,除非执行是线型的(也不保证时间的严格性)
6
+ *
7
+ * - 宏任务:整体代码、setTimeout、DOM 事件回调、requestAnimationFrame、setImmediate、setInterval、I/O操作、UI渲染等
8
+ * - 微任务:Promise的then/catch/finally、process.nextTick(Node.js)、MutationObserver、queueMicrotask(显示添加微任务)等
9
+ *
10
+ * <span style="color:#ff0;">*Node.js中的process.nextTick优先级高于其他微任务*</span>
11
+ *
12
+ * @param delay 睡觉时长(机器时间,毫秒为单位)
13
+ * @returns 🈳
14
+ * @example
15
+ *
16
+ * ```ts
17
+ * import { sleep } from 'a-js-tools';
18
+ *
19
+ * console.log(Date.now()); // 1748058118471
20
+ * await sleep(1000);
21
+ * console.log(Date.now()); // 1748058119473
22
+ *
23
+ * ```
24
+ *
25
+ */
26
+ async function sleep(delay = 1000) {
27
+ if (!isFinite(delay) || delay < 0)
28
+ throw new TypeError('delay 应该是一个正常的数值');
29
+ if (delay === 0)
30
+ return Promise.resolve();
31
+ return new Promise(resolve => setTimeout(resolve, delay));
32
+ }
33
+
34
+ export { sleep };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "type": "module",
3
- "version": "0.6.2",
3
+ "version": "0.7.0",
4
4
  "name": "a-js-tools",
5
5
  "description": "一点点 🤏 js 函数",
6
6
  "license": "MIT",
package/types/index.d.ts CHANGED
@@ -6,3 +6,4 @@ export { isBrowser, isNode } from './src/isNode';
6
6
  export { createConstructor } from './src/object/createConstructor';
7
7
  export type { CreateConstructor } from './src/object/createConstructor';
8
8
  export { intersection, enArr, union, difference, symmetricDifference, } from './src/array/';
9
+ export { sleep } from './src/sleep';
@@ -0,0 +1,26 @@
1
+ /**
2
+ *
3
+ * ## 线程休息
4
+ *
5
+ * 但从调用到执行完毕总是与期望的时间并不相吻合,除非执行是线型的(也不保证时间的严格性)
6
+ *
7
+ * - 宏任务:整体代码、setTimeout、DOM 事件回调、requestAnimationFrame、setImmediate、setInterval、I/O操作、UI渲染等
8
+ * - 微任务:Promise的then/catch/finally、process.nextTick(Node.js)、MutationObserver、queueMicrotask(显示添加微任务)等
9
+ *
10
+ * <span style="color:#ff0;">*Node.js中的process.nextTick优先级高于其他微任务*</span>
11
+ *
12
+ * @param delay 睡觉时长(机器时间,毫秒为单位)
13
+ * @returns 🈳
14
+ * @example
15
+ *
16
+ * ```ts
17
+ * import { sleep } from 'a-js-tools';
18
+ *
19
+ * console.log(Date.now()); // 1748058118471
20
+ * await sleep(1000);
21
+ * console.log(Date.now()); // 1748058119473
22
+ *
23
+ * ```
24
+ *
25
+ */
26
+ export declare function sleep(delay?: number): Promise<void>;