2017-09-11 56 views
0

如何從下面的異步方法檢索帖子? 因爲VS是給一個錯誤,說Xamarin Android - 如何從異步方法檢索數據

class HomePage 
{ 
    HttpClient httpClient = new HttpClient(); 
    List<Post> x = await GetTodoItemsAsync(); 

    public async Task<List<Post>> GetTodoItemsAsync() 
    { 
     var response = await httpClient.GetStringAsync("http://localhost:5000/api/posts"); 
     var posts = JsonConvert.DeserializeObject<List<Post>>(response); 
     return posts; 
    } 
} 

public class Post 
{ 
    public string url { get; set; } 
    public string title { get; set; } 
    public string content { get; set; } 
    public string date { get; set; } 
    public ThumbnailImages thumbnail_images { get; set; } 
} 

回答

0

主要問題就在這裏「等待操作者只能異步方法中使用」的是,這個GetTodoItemsAsync()電話:

List<Post> x = await GetTodoItemsAsync(); 

不能異步調用當HomePage類正在實例化。我建議將該初始化代碼移動到另一個以異步方式顯式調用它的函數。

如需進一步的協助,請閱讀本Stephen Cleary blog post.

0

恭候運營商只能異步方法中使用

所以,你應該與ASYN keywork

List<Post> x; 
public HomePage(){ 
    GetList() 
} 

public async Task GetList(){ 
    x = await GetTodoItemsAsync(); 
} 
的方法