我应该为Future <void>函数返回一个值吗?

时间:2019-04-12 15:02:36

标签: asynchronous dart future void

在Dart中,对于异步运行的函数有2个选项,但不应使用其返回值。

Future<Null>
Future<void>

从Dart 2.0开始,通常建议在大多数情况下使用void而不是Null(由于警告是不应使用void类型)。

对于这些,不需要返回类型,但是可以返回所有类型。但是,这里的最佳实践是什么,我还是应该返回一些东西,应该以空的return(1)结束函数,返回null还是其他东西(2)还是应该仅仅结束函数(3)?假设未使用返回值(例如在所有情况下都应等待exampleFunction()直到函数完成),我是否可能会错过3个选项之间的任何本质区别?基本上就是代码风格吗?

1)

Future<void> exampleFunction() async{
  ...
  return;
} 

2)

Future<void> exampleFunction() async{
  ...
  return null;
} 

3)

Future<void> exampleFunction() async{
  ...     
} 

2 个答案:

答案 0 :(得分:1)

不。 Future类型只是表明该函数将被称为异步。

答案 1 :(得分:1)

如果 async 方法返回Future<void>,则最佳实践是避免在结尾处返回空值。但是,在某些情况下,您仍然可以使用return退出该方法:

Future<void> exampleFunction() async{
  if (skip) return;
  await doSomething();     
}