Redux 繁重工作:我应该在哪里执行多个文件的下载和保存到 FS?
Redux heavy lifting: where should I perform the download and saving to FS of multiple files?
我有一个 React+Redux 应用程序(使用 electron 构建和分发),每天一次,在晚上的给定时间,应该下载多个文件并将其保存到用户的文件系统中。
在我看来,API 调用和操作总数似乎有点太多,无法在 reducer 中完成,所以我在这里询问是否有更好的设计模式。
只是为了给你一个想法,以下是完成此任务我应该执行的操作:
- [API调用]从远程服务获取文件夹列表
- [API调用]每个文件夹,获取内容列表
- [FS]: 验证本地内容是否存在以及是否与远程内容相同
- [API调用]如果没有,下载内容
- [FS] 将内容保存到文件系统
涉及的文件夹数量从10个到30个不等,内容很容易达到100个甚至更多。
要点:
- 用户在此操作期间未使用该应用程序,因此不需要网络工作者或其他异步黑魔法
- 同步可以通过另一种语言的外部脚本来完成,但我宁愿将所有逻辑都放在一个应用程序中以便于分发和设置
- 上面标记为 [API 调用] 的所有点在我当前的设置中都是异步的,因此涉及一些重要的回调管理
知道我可以把这整堆代码放在哪里,同时仍然保持我的代码可读和可维护吗?它应该是 reducer、action creator、容器组件、展示组件还是其他?
谢谢!
我会为此任务创建一个 redux-saga。查看自述文件,它很好地说明了它是什么。一开始可能很难理解,但最终你会得到一个易于阅读和测试的代码。
我有一个 React+Redux 应用程序(使用 electron 构建和分发),每天一次,在晚上的给定时间,应该下载多个文件并将其保存到用户的文件系统中。
在我看来,API 调用和操作总数似乎有点太多,无法在 reducer 中完成,所以我在这里询问是否有更好的设计模式。
只是为了给你一个想法,以下是完成此任务我应该执行的操作:
- [API调用]从远程服务获取文件夹列表
- [API调用]每个文件夹,获取内容列表
- [FS]: 验证本地内容是否存在以及是否与远程内容相同
- [API调用]如果没有,下载内容
- [FS] 将内容保存到文件系统
涉及的文件夹数量从10个到30个不等,内容很容易达到100个甚至更多。
要点:
- 用户在此操作期间未使用该应用程序,因此不需要网络工作者或其他异步黑魔法
- 同步可以通过另一种语言的外部脚本来完成,但我宁愿将所有逻辑都放在一个应用程序中以便于分发和设置
- 上面标记为 [API 调用] 的所有点在我当前的设置中都是异步的,因此涉及一些重要的回调管理
知道我可以把这整堆代码放在哪里,同时仍然保持我的代码可读和可维护吗?它应该是 reducer、action creator、容器组件、展示组件还是其他?
谢谢!
我会为此任务创建一个 redux-saga。查看自述文件,它很好地说明了它是什么。一开始可能很难理解,但最终你会得到一个易于阅读和测试的代码。