【发布时间】:2014-07-28 12:43:14
【问题描述】:
我正在尝试围绕 FRP 概念展开思考,并使用 bacon.js 构建图像滑块。我正在映射next 按钮的(顺便说一句,这是一个人为的示例)点击流,例如:
var position = $slideshow.find('.next').asEventStream('click').map(function(){
return 1;
}).scan(0, function(x,y){
return x + y < $slideshow.find('.slide').length ? (x + y) : 0;
});
position.onValue(function(val){
//set things
});
这很好用。现在我想在我的幻灯片前进到下一张幻灯片时禁用单击它。我能想到的所有方法都包括创建一个我提供给skipWhile 的状态变量,例如:
var isAnimating = false;
var position = $slideshow.find('.next').asEventStream('click').map(function(){
return 1;
}).skipWhile(isAnimating).scan(0, function(x,y){
return x + y < $slideshow.find('.slide').length ? (x + y) : 0;
});
position.onValue(function(val){
isAnimating = true;
//set things
});
这感觉像是在作弊(尤其是在做 FRP“练习”时......)所以我想知道是否有任何方法可以将我的点击流与动画结束事件流结合起来:
var animationEndStream = $slideshow.asEventStream('animationend');
【问题讨论】:
标签: javascript jquery frp bacon.js