我试图像这样将新的可观察对象推送到先前合并的流中。
var state = Observable.merge(
init,
increase
).scan((state, changeFn) => changeFn(state), initialState);
let derp = interval(1000).map(() => state => Object.assign({}, state, {count: state.count + 1000}));
state.merge(derp);
在上面的示例中,derp不会影响内部状态的值;但是,如果执行以下操作,它将起作用。
var state = Observable.merge(
init,
increase,
derp
).scan((state, changeFn) => changeFn(state), initialState);
有没有办法在事实发生后“推送”到先前合并的一组可观测对象?我正在动态创建一些DOM元素,并且需要将它们的点击操作合并到我现有的流中。
答案 0 :(得分:0)
下一个功能就是我想要的。如果有人有类似的问题,这是我所涉足的一个小例子。
const eventStream = new Subject();
const emitter = eventStream.pipe(
scan((acc, changeFn) => changeFn(acc), nextChat(initialState)),
delay(850) // make it feel like it's doing something
);
function createElement(container) {
const newEl = document.createElement('span');
fromEvent(newEl, 'click')
.subscribe(() =>
{
const compFn = ((state) => returnNewState(state));
// eventStream passes state to compFn
eventStream.next(compFn);
});
container.appendChild(newEl);
}
const view = emitter.subscribe(state => nextState(state));