fork
从输入的 Stream 或 Observable 中分流一条新的 Stream 流,新的流会订阅输入的流并发出相同的值。
类型
typescript
type fork: <T>(arg$: Stream<T> | Observable<T>, autoUnsubscribe?: boolean) => Stream<T>;
参数
- arg$: 输入的 Stream 或 Observable 实例
- autoUnsubscribe: 可选参数,默认为
true
。控制输入流取消订阅时是否自动取消分流的订阅true
: 输入流取消订阅时,分流也会自动取消订阅false
: 输入流取消订阅时,分流不会自动取消订阅
详情
- 分流操作创建一个新的流来订阅输入流,新的流会发出与输入流完全相同的值(包括成功值和错误值)
- 新的流也可以推送自己的值,但是不会影响输入流
- 当 autoUnsubscribe 为
true
时,输入流取消订阅后,新的流也会异步取消订阅 - 当 autoUnsubscribe 为
true
时,输入流结束后,新的流也会结束
示例
typescript
import { $, fork } from 'fluth'
const source$ = $('initial value')
const forked$ = fork(source$)
forked$.then((value) => {
console.log('Forked value:', value)
})
console.log(forked$.value) // 输出: initial value
source$.next('new value')
// 输出: Forked value: new value
forked$.next('new forked value')
// 输出: Forked value: new forked value