【发布时间】:2015-04-01 19:13:28
【问题描述】:
函数式反应式编程实现似乎让观察者被动地依赖于为它们提供值的流。
是否可以从下游请求新值?
例如,如果我在游戏 Snake 中有一个提供苹果坐标的流,如果苹果已被吃掉,那么我如何请求新值?
源流不知道需要一个新的苹果。
This 有一个使用递归的有趣实现。
function apple() {
var applePos = randomPos()
return
position
.filter(p => p.equals(applePos))
.take(1)
.flatMapLatest(apple)
.toProperty(applePos)
}
有没有更直接的方法?
也许我可以有一个流,它知道何时获取一个值并立即生成一个新值并将其保存在缓冲区中。
【问题讨论】: