基础概念
流
在fluth
中一共有两种流,分别是 Stream 流和 Subjection 流,所谓的流就是一个可以订阅的数据源。
typescript
import { Stream } from "fluth";
const promise$ = new Stream();
const subjection$ = promise$.then(xxx);
发布数据
Stream 流可以进行数据的推送,使用next
方法进行数据的推送,所有订阅节点都能收到推送的数据
typescript
import { Stream } from "fluth";
const promise$ = new Stream();
promise$.then((data) => console.log(data));
promise$.next("hello"); // 打印 hello
订阅节点
fluth
采用promise
的形式进行数据流的推送,通过then、thenOnce方法对流新增一个订阅节点,返回订阅节点Subjection
实例,整体使用和promise
保持一致。
链式订阅
调用订阅节点的subjection的then
进行链式订阅
取消订阅
调用订阅节点的subjection的unsubscribe
取消订阅
主动执行
调用订阅节点的subjection的execute
方法重新执行上一次订阅的数据流
结束
只有 Stream 流才可以结束,结束意味着流不在推送新的数据。
typescript
import { Stream } from "fluth";
const promise$ = new Stream();
promise$.next(1, true); // true表示结束,最后一次推流
每个订阅节点在执行完最后这次数据推送后都会触发finish这个promise
,然后自动取消订阅。