Pular para o conteúdo principal

async_for_in_wrong_context

Detalhes sobre o diagnóstico 'async_for_in_wrong_context' produzido pelo analisador do Dart.

The async for-in loop can only be used in an async function.

Descrição

#

O analisador emite este diagnóstico quando um laço for-in assíncrono é encontrado em uma função ou método cujo corpo não está marcado como async nem como async*.

Exemplo

#

O código a seguir produz este diagnóstico porque o corpo de f não está marcado como async nem como async*, mas f contém um laço for-in assíncrono:

dart
void f(Stream<int> list) {
  await for (var e in list) {
    print(e);
  }
}

Correções comuns

#

Se a função deve retornar um Future, marque o corpo com async:

dart
Future<void> f(Stream<int> list) async {
  await for (var e in list) {
    print(e);
  }
}

Se a função deve retornar um Stream de valores, marque o corpo com async*:

dart
Stream<void> f(Stream<int> list) async* {
  await for (var e in list) {
    print(e);
  }
}

Se a função deve ser síncrona, remova o await antes do laço:

dart
void f(List<int> list) {
  for (var e in list) {
    print(e);
  }
}

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ê.