Как я могу сохранить данные Future <dynamic>для последующего использования в программе в дартс / флаттер? - PullRequest
1 голос
/ 28 марта 2020

У меня есть следующий код, который не работает:

import 'package:http/http.dart' as http;
import 'dart:convert';
import 'dart:async';


main(){
  String firstTitle = "";
  firstTitle = logic().then((list) => getFirstTitle(list)); // I want to store this data into the variable 
// firstTitle for later use. 
// However my IDE does not recognize the second firstTitle as being linked to the declaration String firstTitle.

}

class MyList {
  static var list = [1];
}

logic() async{
  final result = await http.get('https://invidio.us/api/v1/search?q=tech+lead');
  final data = json.decode(result.body);
  final myList = [];
  data.forEach((e) {    
    myList.add({"title": e['title'], 'videoId': e['videoId'], 'duration': e['lengthSeconds'], "date": e['publishedText']});
    //print(myList);
  });
  return myList;
}



String getFirstTitle(aList){
  return aList[0]["title"];
}

Я понимаю, что мы ожидаем получения данных из источника, но как только я смогу сохранить их в качестве любой переменной ex: String вместо будущего.

ОБНОВЛЕНИЕ: чтобы лучше проиллюстрировать проблему с IDE. enter image description here

1 Ответ

1 голос
/ 28 марта 2020

Используйте asyn c await.

main() async {
  String firstTitle = "";
  List list=[];
  list=await logic();
  firstTitle = getFirstTitle(list));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...