gpt4 book ai didi

xamarin.android - Akavache GetAndFetchLatest 从不调用 fetchfunc

转载 作者:行者123 更新时间:2023-12-04 00:35:08 26 4
gpt4 key购买 nike

过去几天与 Akavache 一起工作。我有几种使用 GetAndFetchLatest 方法的方法,但有些方法从不调用 fetchFunc,并且所有函数都随机出现该问题。

 public async Task<ChecklistModel> GetChecklistTypes()
{
var ChecklistTypesCache =
BlobCache.LocalMachine.GetAndFetchLatest("ChecklistTypes",
() => GetChecklistTypesRemote(),
offset =>
{
TimeSpan elapsed = DateTimeOffset.Now - offset;
return elapsed > new TimeSpan(hours: 0, minutes: 5, seconds: 0);
});
ChecklistTypesCache.Subscribe(subsribedData =>
{
_checkilstModel = subsribedData;
});
_checkilstModel = await ChecklistTypesCache.FirstOrDefaultAsync();
return _checkilstModel;
}

public async Task<ChecklistModel> GetChecklistTypesRemote()
{
//do something
}

有人遇到过这个问题吗?我需要做其他事情才能工作吗?如何解决这个问题?

“更新代码”

  public async Task<IEnumerable<ChecklistModel.Checklist>> 
GetChecklistTypesCache()
{
IEnumerable<ChecklistModel.Checklist> checklistModel = null;
var ChecklistTypesCache =
BlobCache.LocalMachine.GetAndFetchLatest("ChecklistAccessLevels",
() => GetChecklistTypesRemote(),
offset =>
{
TimeSpan elapsed = DateTimeOffset.Now -
offset;
return elapsed > new TimeSpan(hours: 0,
minutes: 5, seconds: 0);
});
ChecklistTypesCache.Subscribe(subsribedData =>
{
checklistModel = subsribedData;
});
checklistModel = await ChecklistTypesCache.FirstOrDefaultAsync();
return checklistModel;
}

public async Task<IEnumerable<ChecklistModel.Checklist>> GetChecklistTypesRemote()
{
//do something
}

最佳答案

GetAndFetchLatest 返回多次。它旨在作为您订阅的可观察对象与 Reactive Extensions 一起使用。 promise/async/await 模式只返回一次。 Rx 现在已经 9 岁多了,非常值得学习 - 请参阅 https://reactiveui.net/concepts

关于xamarin.android - Akavache GetAndFetchLatest 从不调用 fetchfunc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44527782/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com