У меня есть три IObservable
типов Foo
, Bar
и Baz
. Кроме того, существует метод, определенный как:
void DoWork(Foo foo);
В других местах IObservable
определяется как Subject
, а OnNext
время от времени вызывается.
Всякий раз, когда доступны новые данные (определенные некоторыми запросами Where), я хочу вызывать метод DoWork
с самым последним значением Foo
. Если значения Foo
не были сгенерированы, метод не вызывается.
Какой самый простой способ сделать это?
Чтобы быть более конкретным, см. Следующий пример. Я хотел бы позвонить DoWork
, когда bar
или baz
изменить, с последним foo
(f.id == 1
):
void Wire(IObservable<Foo> foo, IObservable<Bar> bar, IObservable<Baz> baz)
{
foo.Where(f => f.Id == 1)
.Subscribe(f => DoWork(f));
}