我正在使用ReSwift和RxSwift(如果没有这些信息,这个问题就没有多大意义)。
有没有一种标准的方式在 ReSwift 中调度动作创建者并在它完成处理后发生某些事情(即,完成处理动作和动作创建者内部可能发生的所有内部请求)?
我确实知道实现这一目标的一种方法:
func myActionCreator(_ callback: () -> Void) -> (state: AppState, store: Store<AppState>) -> Action? {
return { state, store in
_ = someRequest().subscribe(onNext: { _ in
callback()
})
return nil
}
}
store.dispatch(myActionCreator({
// callback
}))
但这有两个问题:
- 我宁愿使用标准方式
- 我也需要这个回调作为一个
Observable
对象。
为了解释第二个原因,我需要类似的东西:
let observable = store.dispatch(myActionCreator)
所以我可以随意使用observable
变量。
当然,我可以自己实现所有这些日志记录,并拥有类似 astore.dispatchReturningObservable
作为 的扩展Store
,但我正在寻找一种更简单的方法。
有吗?