Pular para o conteúdo principal

unawaited_futures

Saiba mais sobre a regra de lint unawaited_futures.

Estável
Correção disponível

Resultados Future em corpos de funções async devem ter await ou ser marcados como unawaited usando dart:async.

Detalhes

#

FAÇA usar await em funções que retornam um Future ou FutureOr dentro do corpo de uma função async.

É fácil esquecer o await em métodos async, já que as convenções de nomenclatura geralmente não nos dizem se um método é síncrono ou async (exceto por alguns em dart:io).

Quando você realmente quer iniciar um Future do tipo "dispara e esquece", a forma recomendada é usar unawaited de dart:async. Os comentários // ignore e // ignore_for_file também funcionam.

RUIM:

dart
Future doSomething() => ...;
​
void main() async {
  doSomething(); // Likely a bug.
}

BOM:

dart
Future doSomething() => ...;
​
void main() async {
  await doSomething();
​
  unawaited(doSomething()); // Explicitly-ignored fire-and-forget.
​
  // ignore: unawaited_futures
  doSomething(); // Explicitly-ignored fire-and-forget.
}

Ativar

#

Para ativar a regra unawaited_futures, adicione unawaited_futures em linter > rules no seu arquivo analysis_options.yaml:

analysis_options.yaml
yaml
linter:
  rules:
    - unawaited_futures

Se você usa a sintaxe de mapa YAML para configurar as regras de lint, adicione unawaited_futures: true em linter > rules:

analysis_options.yaml
yaml
linter:
  rules:
    unawaited_futures: true

Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.