如何将未来投射/转换为<dynamic>图像?



我有获取图像的功能,例如

dynamic imgBinary = _repository.fetchImage(productId);

我想将其添加到图像列表中

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

所以喜欢

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

怎么选角?

好的,所以你可以尝试.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() 方法注册回调。此回调在将来完成时触发。

欲了解更多信息

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

相关内容

最新更新