Это правда, что вы не можете изменить значение Observable
напрямую , потому что не имеет смысла иметь Observable
.В этом случае вы можете просто вернуть значение и изменить его в строке без использования наблюдаемого.
Думайте о наблюдаемом просто как о последовательности событий, упорядоченных по времени.В структуре данных последовательности вы не управляете непосредственно или не изменяете то, что находится внутри них, что вы обычно делаете, чтобы отобразить их во что-то другое, отфильтровать события, которые вы хотите исключить, основываясь на определенном условии, или объединить их с другой последовательностью.
Например, вы можете map
эти события, которые можно описать как e(t)
, с горизонтальной линией, представляющей поток времени.
--1--2--3--4--5--6--|
на его кратные:
func duplicate(event: Int) -> Int {
return event * 2
}
--2--4--6--8--10--12--|
впоследствии, filter
им
func clip(event: Int) -> Int {
return event < 10
}
--2--4--6--8--|
Затем, представьте, что эти последовательности представляют собой последовательность любого типа, это может быть результатом нескольких ответов HTTP от нескольких запросов, которые вы объединяете вместе.
Это может быть Void
, который обычно является результатом события UIControl
.Вы можете взглянуть на документацию здесь:
ControlProperty / ControlEvent
Однако, если вам действительно нужна мутация, взгляните на BehaviorRelay
.