Skip to content

简介

基础

fluth是一个类promise的流式编程库,擅长响应式编程。

假如认为promise是发布者而then方法是订阅者,promise的发布行为则只有一次。

fluth加强了promise,让promise可以不断的发布!

javascript
import { $ } from "fluth";

const promise$ = $();

promise$.then(
  (r) => console.log("resolve", r),
  (e) => console.log("reject", e)
);

promise$.next(1);
promise$.next(Promise.reject(2));
promise$.next(3);

// Logs:
// resolve 1
// resolve 3
// reject 2
  • 相比其他流式编程库,fluth更加简单易用,上手成本低,
  • 相比promisefluth可以不断发布并且支持取消定订阅

对比 rxjs

rxjs是当前主流的流式编程库,和fluth相比而言有几个区别:

  1. fluth上手非常简单,只要会使用promise就可以使用
  2. fluth可以对观察者的进行串联,而rxjsobserver之间是并发的
  3. fluth的将对流的操作分为operatorchainPluginchainPlugin只做流的组合,chainPlugin可以在观察者之间链式调用
javascript
// rxjs:
stream$.pipe(operator1, operator2, operator3);
stream$.subscribe(observer1);
stream$.subscribe(observer2);
stream$.subscribe(observer3);
javascript
//fluth:
stream$.use(chainPlugin1, chainPlugin2, chainPlugin3)

stream$
  .then(observer1)
  .chainPlugin1()
  .then(observer2)
  .chainPlugin2()
  .then(observer3)
  .chainPlugin3();
stream$.next(1);

operator1(stream$1, stream$2);
operator2(stream$2, stream$3);