Pipe 与 Compose API(v1.1.0)
版本切换:函数 API 版本索引 | v1.1.0 概览
主题切换:Core 总览 | Service API | Functional 总览
这一页覆盖最基础的函数组合 API。
页面摘要
- 这一页适合第一次接触函数式工具的开发者,是
functional里最先应该掌握的一组 API。 pipe解决“按执行顺序写”,compose解决“先声明组合函数再复用”,异步场景再切到pipeAsync/composeAsync。- 如果你在 Service 或 Controller 里只是做简单的数据清洗,这一页通常已经够用。
页内导航
- pipe(value, ...fns)
- compose(...fns)
- pipeAsync(value, ...fns)
- composeAsync(...fns)
- 什么时候用 pipe,什么时候用 compose
- 导出清单
pipe(value, ...fns)
从左到右把值传给多个函数。
| 项 | 说明 |
|---|---|
| 参数 | value 初始值,...fns 为转换函数列表 |
| 返回值 | 最后一个函数的返回值 |
| 适合 | 数据清洗、逐步转换、让执行顺序更直观 |
import { pipe } from '@stratix/core/functional';
const result = pipe(
' alice ',
(value) => value.trim(),
(value) => value.toUpperCase(),
(value) => `USER:${value}`
);
compose(...fns)
从右到左组合函数,返回一个新函数。
| 项 | 说明 |
|---|---|
| 参数 | 多个函数 |
| 返回值 | (value) => result |
| 适合 | 先声明转换链,再在多个地方复用 |
import { compose } from '@stratix/core/functional';
const normalize = compose(
(value: string) => `USER:${value}`,
(value: string) => value.toUpperCase(),
(value: string) => value.trim()
);
pipeAsync(value, ...fns)
异步版本的 pipe。
| 项 | 说明 |
|---|---|
| 参数 | 初始值或 Promise、异步步骤函数列表 |
| 返回值 | Promise<结果> |
| 适合 | 多步异步处理链 |
composeAsync(...fns)
异步版本的 compose。
| 项 | 说明 |
|---|---|
| 参数 | 多个异步函数 |
| 返回值 | (value) => Promise<结果> |
| 适合 | 需要从右到左声明异步处理链 |
什么时候用 pipe,什么时候用 compose
- 想让阅读顺序和执行顺序一致:用
pipe - 想先定义“组合出来的新函数”:用
compose - 步骤里有异步逻辑:用
pipeAsync/composeAsync
导出清单
composecomposeAsyncpipepipeAsync