Как использовать строку, возвращаемую методом Future в flutter?

#flutter #future #flutter-desktop

#трепетание #будущее #флаттер-рабочий стол

Вопрос:

Я пытаюсь прочитать компоненты файла json, используя следующий метод:

 import 'dart:io';

class CharacterDataReader {
  Future<String> read() async {
    final file = File('assets/data/character_data.json');

    String data = await file.readAsString();

    return data;
  }
}

 

Теперь я пытаюсь присвоить прочитанные значения строке с именем data и json.decode() в другом классе, используя следующее:

 
Future<String> data = CharacterDataReader().read();
Map<String, dynamic> characterData = json.decode(data);
 

Однако это не работает, поскольку json.decode() принимает только строки в качестве параметра. Поэтому, может кто-нибудь, пожалуйста, скажите мне, как мне преобразовать это будущее в фактическую строку?

Ответ №1:

поскольку это будущее, вы должны добавить ключевое слово await

 String data= await CharacterDataReader().read();
 

ознакомьтесь с официальным документом dart по асинхронному программированию