非常简单和常见的用例,但我找不到令人满意的答案。我有需要在本地存储一些数据的本机应用程序。我正在使用 redux 和 redux-observables 以及 Realm 作为存储。
我需要的是:发生一些动作,比如说 ADD_ITEM。我需要使用一些有效负载(标准 redux)来更新 UI。然后我想将该有效负载创建/转换为另一段数据并将该数据保存到领域(异步)。无论我尝试什么,它总是落后于 UI(很多)。
我试图将该领域调用包装成 promise 并使用 switchMap,但它仍然很慢。
我还没有看过工人,但他们只接受字符串,这对我来说用处不大。
我可以将计算完全卸载到本机后台线程,但这会非常不舒服并且需要大量的写作。
异步等待可以帮助我吗?redux-saga 的?我觉得这是一回事,而不是真正的异步处理。
还是我为此使用了完全错误的库?
const insertOrderItem = (action$) =>
action$.ofType(Action.ADD_ORDER_ITEM)
.switchMap(({ payload }) => Rx.Observable.fromPromise(
new Promise((resolve, reject) => {
storage.insert(createObject(payload)
resolve({
type: "OPERATION_ADDED"
})
})
))
一般来说,将一小块数据存储到领域不应该有太多的计算量,但我觉得有必要在后台线程上做这种工作。
我错过了什么吗?
谢谢