Функциональные реализации реактивного программирования, по-видимому, имеют наблюдателя как пассивно зависящие от потоков, предоставляющих им значения.Как я могу вывести значение из потока?
Можно ли запросить новое значение из нисходящего потока?
Например, если у меня есть поток, который служит координатам яблока в игре Змея, если яблоко было съедено, то как я могу попросить новое значение?
Исходный поток не знает, что требуется новое яблоко.
This имеет интересную реализацию, которая использует рекурсию.
function apple() {
var applePos = randomPos()
return
position
.filter(p => p.equals(applePos))
.take(1)
.flatMapLatest(apple)
.toProperty(applePos)
}
Есть ли более прямой способ сделать это?
Возможно, у меня мог бы быть поток, который знает, когда значение было принято, и немедленно генерирует новый и удерживает его в буфере.
Ага ... да, поток яблока слушает съеденное событие. –