У меня есть функция (ниже), в которой я извлекаю данные из API. Если я установил точку останова в строке, которая десериализует ее, то я вижу, что она заполнена данными, которые являются большими.Продолжить Не дожидаясь завершения задачи
Когда я продолжаю, он переходит во вторую функцию (ниже) и выдает ошибку. Ошибка говорит рядом с ней Not yet computed
и, следовательно, выбрасывает исключение.
Когда я делаю это с небольшим списком, он работает просто отлично (я полагаю, это потому, что это небольшой набор данных).
Как это возможно, когда я использую ContinueWith
(ожидающий завершения задачи)?
public static async Task<Data> GetAllCardsInSet(string setName)
{
setName = WebUtility.UrlEncode(setName);
var correctUri = Path.Combine(ApiConstants.YugiohGetAllCardsInSet, setName);
Console.WriteLine();
using (var httpClient = new HttpClient())
{
var response =
await httpClient.GetAsync(correctUri);
var result = await response.Content.ReadAsStringAsync();
var cardData = JsonConvert.DeserializeObject<CardSetCards>(result);
for (int i = 0; i < cardData.Data.Cards.Count; i++)
{
cardData.Data.Cards[i] = FormatWords(cardData.Data.Cards[i]);
}
return cardData.Data;
}
}
private void GetYugiohCardsAndNavigate(string name)
{
var cardSetData = YugiohRequester.GetAllCardsInSet(_selectedCardSet.Name).ContinueWith((result) =>
{
//var cards = await YugiohRequester.GetAllCardsInSet(_selectedCardSet.Name);
try
{
this.mainPage.NavigateToYugiohCardListPage(result.Result);
}
catch (Exception e)
{
HelperFunctions.ShowToastNotification("Trading Card App", "Sorry, we could not fetch this set");
}
});
}
Что будет произойти, если вы избегаете 'ContinueWith' просто ждать' метод GetAllCardsInSet'? – kat1330
Дает мне нулевое исключение ссылки –
Не могли бы вы исследовать, что произойдет, если вы вернетесь в 'Task_FromResult (cardData.Data)' вместо 'cardData.Data'. – kat1330