有没有办法跟踪反应命令何时完成执行?
Is there a way to track when reactive command finished its execution?
有谁知道如何跟踪响应式命令已完成执行并连接该方法,该方法将在 运行 之后启动?
P.S。在命令的处理程序方法末尾调用方法时的变体不适合我的情况。
提前致谢!
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
Eugene 完全正确,但我想提一个替代方案。如果你的命令只有 returns 一个值(就像大多数命令一样),你可以挂钩到命令本身是一个可观察的,它会勾选每次成功执行的结果:
YourCommand.Subscribe(result => YourMethodCall(result));
这样做的好处是您现在可以在 YourMethodCall
中访问命令的结果。
有谁知道如何跟踪响应式命令已完成执行并连接该方法,该方法将在 运行 之后启动?
P.S。在命令的处理程序方法末尾调用方法时的变体不适合我的情况。
提前致谢!
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
Eugene 完全正确,但我想提一个替代方案。如果你的命令只有 returns 一个值(就像大多数命令一样),你可以挂钩到命令本身是一个可观察的,它会勾选每次成功执行的结果:
YourCommand.Subscribe(result => YourMethodCall(result));
这样做的好处是您现在可以在 YourMethodCall
中访问命令的结果。