【发布时间】:2020-03-29 10:16:08
【问题描述】:
我在 C# 和 Javascript 方面有很强的背景,而且我在 Dart 和 Futures 上没有什么不明白的: 假设我有这样的未来:
scoreFile.exists().then((r) => {
if (r){
List<ScoreRow> previousScores = await scoreFile.readAsString();
scores = jsonDecode(previousScores);
}
});
我知道这是不允许的,因为我需要将回调设为 foo() 函数。但是为什么要用只在这个地方使用的代码来混乱空间呢?我的意思是,我真的需要创建与回调一样多的小函数吗? 对于非常复杂的处理,我不会这样做(如果没有放入适当的功能,这将是不可测试的)但是对于这样一个简单的过程? 又或许 Dart 设计是“没有不被测试的简单代码” 因为从语法的角度来看,我的函数已经存在,她只是匿名的:她存储在大括号中:) 感谢您的洞察力:)
【问题讨论】:
-
去掉
then函数并在scoreFile.exists()之前添加awaitdart.dev/codelabs/async-await
标签: dart