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 +1 -0
- package/cjs/index.cjs +2 -0
- package/cjs/src/sleep.cjs +36 -0
- package/mjs/index.mjs +1 -0
- package/mjs/src/sleep.mjs +34 -0
- package/package.json +1 -1
- package/types/index.d.ts +1 -0
- package/types/src/sleep.d.ts +26 -0
package/README.md
CHANGED
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
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>;
|