功能反应式编程实现似乎让观察者被动地依赖于为它们提供值的流。
是否可以从下游请求新值?
例如,如果我在Snake游戏中有一个提供苹果坐标的流,如果已经吃掉了苹果,那么我该如何申请新值呢?
源流不知道需要新苹果。
This有一个使用递归的有趣实现。
function apple() {
var applePos = randomPos()
return
position
.filter(p => p.equals(applePos))
.take(1)
.flatMapLatest(apple)
.toProperty(applePos)
}
有没有更直接的方法呢?
也许我可以拥有一个知道何时获取值并立即生成一个新流并将其保存在缓冲区中的流。
答案 0 :(得分:1)
源流不知道需要新苹果。
我认为这就是问题所在。在适当的FRP中,apple
函数应该有一个带有apple eaten
个事件流的参数,以便它可以知道何时生成一个新的苹果。