Должен ли я вернуть значение для функции Future <void>? - PullRequest
0 голосов
/ 12 апреля 2019

В Dart есть 2 варианта для функций, которые работают асинхронно, но возвращаемые значения не должны использоваться.

Future<Null>
Future<void>

Начиная с Dart 2.0, в большинстве случаев рекомендуется использовать void вместо Null (из-за предупреждения о том, что типы void не следует использовать).

Для них тип возврата не требуется, но можно возвращать все типы.Но какова лучшая практика здесь, если я все еще возвращаю что-то, должен ли я завершить функцию пустым return (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{
  ...     
} 

Ответы [ 2 ]

1 голос
/ 12 апреля 2019

Если метод async возвращает Future<void>, рекомендуется избегать пустого возврата в его конце.Однако вы все равно можете использовать return для выхода из метода при определенных условиях:

Future<void> exampleFunction() async{
  if (skip) return;
  await doSomething();     
} 
1 голос
/ 12 апреля 2019

Нет. Тип Future просто указывает, что функция будет называться async.

...