Есть ли способ отследить, когда реактивная команда закончила свое выполнение? - PullRequest
0 голосов
/ 04 мая 2018

Кто-нибудь знает, как отследить тот факт, что реактивная команда завершила свое выполнение, и подключить метод, который после этого запустится?

P.S. Вариант при вызове метода в конце метода-обработчика команды не подходит в моей ситуации.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 05 мая 2018

Евгений совершенно прав, но я хотел упомянуть альтернативный вариант. Если ваша команда возвращает только одно значение (как и большинство команд), вы можете подключиться к самой команде - это наблюдаемая, которая помечает результат каждого успешного выполнения:

YourCommand.Subscribe(result => YourMethodCall(result));

Преимущество здесь в том, что теперь у вас есть доступ к результату команды в YourMethodCall.

0 голосов
/ 04 мая 2018

ReactiveCommand имеет наблюдаемое свойство с именем IsExecuting, которое можно использовать для наблюдения за выполнением команды. Один из способов справиться с этим делом - сделать что-то вроде этого:

YourCommand.IsExecuting
    .Skip(1) // IsExecuting has an initial value of false.  We can skip that first value
    .Where(isExecuting => !isExecuting) // filter until the executing state becomes false
    .Subscribe(_ => YourMethodCall()); // run your method now that the command is done
...