RxJS 有一个漂亮的函数fromCallback,它接受一个最后一个参数是回调的函数并返回一个Observable
. 我想将它与 React 的setState
功能结合起来,以便我可以做一些类似于:
const setState = Rx.Observable.fromCallback(this.setState);
setState({ myState: 'Hi there!' }).concat(....)
这样任何链接到 setState 的操作都保证在设置状态后发生,最重要的是,setState
在有活动订阅者之前不会调用它。
我注意到的是,即使没有订阅,setState
也会在定义和设置组件状态时被正确调用。所以如果我有:
networkSignal.flatMap((x) => {
return setState({ myState: 'test' });
});
该函数setState
会立即被调用,但它产生的观察者在有订阅者之前不会发送下一个。我想要的是该函数仅在有订阅者时才调用。
查看源代码,您可以看到 RxJS 返回一个函数,该函数在执行时会创建一个可观察对象,但会立即调用该函数 - 回调参数。