gpt4 book ai didi

android - Future > 在迭代图像列表时返回 null

转载 作者:IT王子 更新时间:2023-10-29 07:15:59 28 4
gpt4 key购买 nike

我需要得到 transformPhotos 函数的结果,它应该给我一个 base64 格式的图像列表(确实如此),但是当我在下一个函数中得到它时,它会抛出 []

Future<List<String>> transformPhotos() async {
List<String> imagesToBase64 = [];
if (_images.length > 0) {
_images.forEach((File imageFile) async {
imagesToBase64.add(await utils.imageToBase64(imageFile));
});
}
return imagesToBase64;
}
Future<void> uploadPhotos() async {
transformPhotos().then((onValue) {
print(onValue); //throws []
});
}

我希望得到如下结果:[String, String, String]

您好,非常感谢!

最佳答案

填充列表的代码是异步的:imagesToBase64.add(await utils.imageToBase64(imageFile));

但是您没有等待异步计算完成就返回了列表。基本上,return imagesToBase64; 在添加任何值之前被调用,因此是空的。尝试这样的事情:

return Future.forEach(_images, (File imageFile) async {
imagesToBase64.add(await utils.imageToBase64(imageFile));
}).then((_) => imagesToBase64);

关于android - Future <List <String>> 在迭代图像列表时返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57379361/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com