我有获取图像的功能,例如
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;
}