我应该为Future返回一个值吗? 功能?

问题描述 投票:0回答:2

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

Future<Null>
Future<void>

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

对于这些,不应该要求返回类型,但可以返回所有类型。但是这里最好的做法是什么,如果我仍然返回一些东西,我应该用空返回(1)结束函数,返回null或其他东西(2)或者我应该结束函数(3)?我是否可能错过了3个选项之间的任何本质区别,假设返回值没有被使用(例如await exampleFunction()应该在所有情况下等到函数完成)?它本质上只是代码风格吗?

1)

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

2)

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

3)

Future<void> exampleFunction() async{
  ...     
} 
asynchronous dart future void
2个回答
1
投票

如果异步方法返回Future<void>,最佳做法是避免在其结尾处返回空值。但是,您仍然可以使用return在某些条件下退出该方法:

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

1
投票

No. Future类型只是表明该函数将被称为async。

© www.soinside.com 2019 - 2024. All rights reserved.