Error with await operator

前端 未结 2 735
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-29 15:41

There is problem with my code. How can I solve this problem? This problem in await operator.

 public MyModel() 
    {
        HttpClient client = new HttpClient(         


        
2条回答
  •  迷失自我
    2021-01-29 15:59

    You can't use await in the constructor of a class.

    An async method returns a Task object which can be executed async. A constructor does not have a return type and thus can't return a Task object, and thus can't be awaited.

    A simple fix for this problem is create a Init function:

    public MyModel() 
    {
    
    }
    
    public async Task Init()
    {
        HttpClient client = new HttpClient();
        HttpResponseMessage response = await client.GetAsync("https://api.vkontakte.ru/method/video.get?uid=219171498&access_token=d61b93dfded2a37dfcfa63779efdb149653292636cac442e53dae9ba6a049a75637143e318cc79e826149");
        string googleSearchText = await response.Content.ReadAsStringAsync();
        JObject googleSearch = JObject.Parse(googleSearchText);
        IList results = googleSearch["response"].Children().Skip(1).ToList();
        IList searchResults = new List();
        foreach (JToken result in results)
        {
            MainPage1 searchResult = JsonConvert.DeserializeObject(result.ToString());
            searchResults.Add(searchResult);
    
        }
    }
    

    Then when you create your model:

    var model = new MyModel();
    await model.Init();
    

提交回复
热议问题