【问题标题】:How can I pull a value out of a stream?如何从流中提取值?
【发布时间】: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)
} 

有没有更直接的方法?

也许我可以有一个流,它知道何时获取一个值并立即生成一个新值并将其保存在缓冲区中。

【问题讨论】:

    标签: frp bacon.js


    【解决方案1】:

    源流不知道需要一个新的苹果。

    我认为这就是问题所在。在适当的 FRP 中,apple 函数应该有一个带有apple eaten 事件流的参数,以便它可以知道何时生产一个新苹果。

    【讨论】:

    • 啊哈...是的,苹果流监听了吃掉的事件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-17
    • 2018-10-28
    • 1970-01-01
    • 2021-11-05
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多