gpt4 book ai didi

javascript - Bacon中如何根据一些EventStream的变化来切换流

转载 作者:行者123 更新时间:2023-11-29 10:13:37 24 4
gpt4 key购买 nike

考虑来自 http://baconjs.github.io/ 的这个例子

var up   = $('#up').asEventStream('click');
var down = $('#down').asEventStream('click');

var counter =
// map up to 1, down to -1
up.map(1).merge(down.map(-1))
// accumulate sum
.scan(0, function(x,y) { return x + y });

// assign observable value to jQuery property text
counter.assign($('#counter'), 'text');

如果我还有一个用于重置计数器的按钮,并且来自该按钮的点击事件流怎么办?如何根据重置点击流切换计数器流以重置计数器?我知道我必须使用 .flatMapLatest 方法,但引用这个例子我不知道该怎么做。

最佳答案

这里不需要flatMapLatest。您可以使用功能强大且简单得多的 Bacon.update在这个例子中,我们有一个简单的状态机。

var up    = $('#up').asEventStream('click');
var down = $('#down').asEventStream('click');
var reset = $('#reset').asEventStream('click');

var counter = Bacon.update(0,
[up], function (prev, unused) { return prev + 1; },
[down], function (prev, unused) { return prev - 1; },
[reset], function (prev, unused) { return 0; }
);

关于javascript - Bacon中如何根据一些EventStream的变化来切换流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27632936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com