我正在尝试实现一个自动完成文本框,它连接到mongodb服务器以从数据库中获取集合并查看它。我的参考是this。
Func<string, IObservable<Scrip[]>> getSuggestions = GetSuggestions;
GetSuggestions看起来像
private IObservable<Scrip[]> GetSuggestions(string searchString)
{
return Observable.FromAsync(() => myService.SearchAsync(searchString));
}
Rx实现看起来像
var results = from searchTerm in textChangedObservable
from serviceSuggestion in getSuggestions(searchString)
select serviceSuggestion;
results.ObserveOn(listBoxSearchResults).Subscribe(res =>
{
listBoxSearchResults.Items.Clear();
foreach (var r in res)
{
listBoxSearchResults.Items.Add(r);
}
});
我对如何在我的WCF服务中实现这一点感到困惑。我开始使用方法
public async Task<List<Scrip>> Search(string searchString)
实施将像
var ret = await _database.ListCollectionsAsync(options);
现在如何在保持方法异步的同时将返回值转换为Task<List<Scrip>>
?
答案 0 :(得分:0)
_database.ListCollectionsAsync(options);
这将返回一个任务。
如果您删除await
,它仍然是一个任务。