yann-useorderfun 0.3.2 → 1.0.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 +34 -0
- package/dist/index.js +668 -741
- package/dist/index.umd.cjs +2 -0
- package/index.d.ts +83 -83
- package/package.json +18 -12
- package/dist/index.umd.js +0 -2
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# yann-useOrderFun
|
|
2
2
|
|
|
3
|
+
适用于 Vue 3.2+。完整分析、基准结果和兼容性说明见 [OPTIMIZATION.md](./OPTIMIZATION.md)。
|
|
4
|
+
|
|
3
5
|
## 使用
|
|
4
6
|
|
|
5
7
|
```js
|
|
@@ -58,3 +60,35 @@ const { statusList, result, error, start, suspend } = useWatchOrderFun(listRef);
|
|
|
58
60
|
| suspend | function | 暂停函数 |
|
|
59
61
|
| resume | function | 恢复执行 |
|
|
60
62
|
| update | function | 更新函数 |
|
|
63
|
+
| dispose | function | 停止监听并释放保存的数据 |
|
|
64
|
+
|
|
65
|
+
## 性能与内存选项
|
|
66
|
+
|
|
67
|
+
```ts
|
|
68
|
+
const runner = useOrderFun<number, number>([
|
|
69
|
+
value => value + 1,
|
|
70
|
+
async value => value + 10
|
|
71
|
+
], {
|
|
72
|
+
clone: false, // 关闭拷贝,输入和返回值共享引用
|
|
73
|
+
retainResults: false // 只保留最近一步的数据,仍保留每一步的状态
|
|
74
|
+
});
|
|
75
|
+
const [err, value] = await runner.start(1);
|
|
76
|
+
runner.dispose();
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
默认 `clone: true`、`retainResults: true`,保持每一步的输入隔离和完整中间结果。`clone` 也可传入泛型拷贝函数。共享可变对象时,关闭拷贝会让任务修改原始输入。
|
|
80
|
+
|
|
81
|
+
`suspend()` 等待当前步骤完成后暂停,返回当前结果;`resume()` 从下一步骤继续执行。空闲时两者立即返回当前结果。重复 `start()` 或更新列表会让旧执行返回错误元组,旧任务后续完成不会覆盖新状态。
|
|
82
|
+
|
|
83
|
+
`useWatchOrderFunSync` 对纯同步列表直接返回结果元组;遇到 Promise 或 thenable 时立即返回 `undefined`,通过 `start(data, callback)` 的回调接收该次执行或暂停的结果。结果类型包含 `undefined`,因为空列表和无返回值步骤都可能产生该值。
|
|
84
|
+
|
|
85
|
+
在 Vue 组件或 effect scope 内使用时自动释放;在 scope 外使用时,完成使用后调用 `dispose()`。释放不会强制终止任务自身的网络请求或定时器,这些资源应由任务管理。
|
|
86
|
+
|
|
87
|
+
## 开发检查
|
|
88
|
+
|
|
89
|
+
```sh
|
|
90
|
+
pnpm install --frozen-lockfile
|
|
91
|
+
pnpm typecheck # 同时检查库、类型用例和 Vue 示例组件
|
|
92
|
+
pnpm test # 构建、生成声明并执行回归测试
|
|
93
|
+
pnpm benchmark # 耗时和保留堆内存基准
|
|
94
|
+
```
|