我使用了MvvmCross样本中的代码,我能够运行MvxImageViewLoader我的项目.它为应用程序的当前实例缓存图像,但如果我重新启动它,则所有图像将再次重新加载.我想让它们在iPhone的Library\Caches文件夹中保持不变.
我注意到在应用程序日志中有一行:
mvx: Warning: 2.25 Persistent download cache will not be available - no text serializer available
它来自框架MvxFileDownloadCache类,因为IoC容器没有用于IMvxTextSerializer接口的注册类.所以我假设如果我为这个接口定义我的实现,那么具有永久缓存的解决方案将以某种方式工作.虽然界面的性质似乎可疑用于将图像保存到磁盘,因为它使用对象序列化和字符串进行反序列化操作.所以我真的很困惑,无法意识到要走哪条路.
假设我有一个功能
function* request(url) {
return global.fetch(url).then(response =>
_.result(response, 'json'))
}
Run Code Online (Sandbox Code Playgroud)
这两个代码示例对我来说都很好
const {data} = yield call(request, 'http://example.com/api');
yield put(actionSuccess(data));
Run Code Online (Sandbox Code Playgroud)
和
const {data} = yield request('http://example.com/api');
yield put(actionSuccess(data));
Run Code Online (Sandbox Code Playgroud)
因此是问题。将call效果用于返回promise的功能有什么好处?