【问题标题】:Asynchronous function returns only null (Flutter) [closed]异步函数仅返回 null (Flutter) [关闭]
【发布时间】:2021-03-05 02:27:19
【问题描述】:

我是 Flutter 的新手,并尽我所能编写一个函数“getUserPictures”,它应该返回一个图片列表,这些图片要么保存在设备本地,要么从 Google Firebase 获取。 计划是稍后在 Futurebuilder 中使用从该函数返回的 Future。

在此函数内部调用的每个函数都经过测试并且可以正常工作。

问题是,这个函数总是返回null。我不明白为什么。

在这种特殊情况下,我用 false 填充了 fetchOnline - 我知道有一个名为 userPictures.json 的文件。所以应该能找到。该函数应执行 if 块内的代码。它这样做了,文件甚至被完全打印出来,但函数仍然返回 null。为什么?

恐怕我搞砸了与未来相关的东西。我希望你们能帮助我..

这些是打印的日志:

I/flutter (13977):日志:真

I/flutter (13977):日志:读取文件 userPictures.json

I/flutter (13977):日志:返回此 null

I/flutter (29229):日志:读取成功 -> [“图片”实例,“图片”实例,“图片”实例,“图片”实例,“图片”实例]

【问题讨论】:

    标签: flutter dart async-await dart-async flutter-futurebuilder


    【解决方案1】:

    如果你使用async & await 那么就不需要使用then 回调

    final jsonData = await CustomCache.readText(filename: "userPictures.json");
    tempList = PixenseFunctions.convertJsonToListOfPictures(jsonData: jsonData);
    

    【讨论】:

    • 哇!谢谢,它确实有效。所以.then不能和async&await结合使用?
    • 欢迎您使用,但您需要确保它在当前流程中执行,请标记并支持答案
    猜你喜欢
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    • 2017-12-09
    相关资源
    最近更新 更多