Как преобразовать / преобразовать Future <dynamic>в изображение? - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть функция для получения изображения как

dynamic imgBinary = _repository.fetchImage(productId);

И я хочу добавить это в Список изображений

List<NetworkImage> listImages = new List<NetworkImage>();

Так как

dynamic imgBinary = _repository.fetchImage(productId);
listImages.add(imgBinary);

Какразыграть это?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Хорошо, вы можете попробовать метод .then.

Поскольку _repository.fetchImage(productId); - это будущее.

, поэтому вы можете попробовать -

List<NetworkImage> listImages = List<NetworkImage>();
    Future<dynamic> imgBinary = _repository.fetchImage(productId);
    imgBinary.then((i){
    listImages.add(i);
    });

или

Непосредственно:

_repository.fetchImage(productId).then((i){
listImages.add(i);});

Чтобы получить значение из будущего - мы можем использовать:

async and await

ИЛИ вы можете использовать метод then() для регистрации обратного вызова.Этот обратный вызов срабатывает, когда Future завершается.

Для получения дополнительной информации info

0 голосов
/ 11 февраля 2019

РЕДАКТИРОВАТЬ: ответ anmol.majhail лучше

Ваш метод fetchImage должен вернуть будущее, вот вам некоторый псевдокод в качестве подсказки

List<NetworkImage> listImages = new List<NetworkImage>();

Future<void> _fetchAddImageToList(int productId) async {
     //trycatch
    dynamic imgBinary = await _repository.fetchImage(productId);
    listImages.add(imgBinary);
}

Future<NetworkImage> fetchImage(int id) async {
    New NetworkImage img = new NetworkImage();
    //do your fetch work here
    return img;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...