如何投/转换未来 成图像?(How to cast/convert Future

2019-09-27 13:39发布

我有函数来获取图像像

dynamic imgBinary = _repository.fetchImage(productId);

我想加入到图片的这个名单

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

因此,像

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

怎么投呢?

Answer 1:

好了,你可以试试.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()方法来注册一个回调。 当未来完成这个回调火灾。

欲了解更多信息



Answer 2:

编辑: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;
}


文章来源: How to cast/convert Future into Image?