Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Caching “加载本地,然后更新,然后远程,可能更新”的模式_Caching_Design Patterns_Callback_Promise_Future - Fatal编程技术网

Caching “加载本地,然后更新,然后远程,可能更新”的模式

Caching “加载本地,然后更新,然后远程,可能更新”的模式,caching,design-patterns,callback,promise,future,Caching,Design Patterns,Callback,Promise,Future,我正在寻找一种可以轻松解决以下问题的编码模式:这是我发现自己在开发中必须大量使用的一种范例。用户打开任何UI后,可能会发生以下情况: 从本地存储器加载数据 使用本地数据更新用户界面 从远程加载数据 将远程数据存储到本地存储 使用远程数据更新用户界面 一个简单的例子是加载一个Twitter时间线。该应用程序将向用户展示其拥有的内容、后台远程更新,然后在发现更多最新推文时更新用户界面 理想情况下,每个步骤都将异步运行,并且可以随时取消。到目前为止,我一直在混合使用未来/承诺和回调,但我发现自己写了很

我正在寻找一种可以轻松解决以下问题的编码模式:这是我发现自己在开发中必须大量使用的一种范例。用户打开任何UI后,可能会发生以下情况:

从本地存储器加载数据 使用本地数据更新用户界面 从远程加载数据 将远程数据存储到本地存储 使用远程数据更新用户界面 一个简单的例子是加载一个Twitter时间线。该应用程序将向用户展示其拥有的内容、后台远程更新,然后在发现更多最新推文时更新用户界面

理想情况下,每个步骤都将异步运行,并且可以随时取消。到目前为止,我一直在混合使用未来/承诺和回调,但我发现自己写了很多胶水代码


任何建议都将不胜感激。

如果您有工作代码,并且希望获得关于如何使其更干净的建议,那么这可能更适合您。现在的问题是,由于您没有包含任何自己的代码,所以绘制实际的代码解决方案似乎有点过于笼统/通用。显然,您可以编写一个函数来管理所有这五个步骤,并且可以重用。但是,如何做到这一点的细节并不是特别通用,因为它们取决于你的具体需求。好吧,我就是这么想的。。。事实上,我并没有对codereview指手画脚。谢谢你告诉我,如果你想表示多次更新的数据,你可能想看看FRP,而不是承诺。承诺只能解决一次。@Bergi?@der_michael:是的,那一次。