async로 표시되지 않은 함수 본문에서 쓴 await
async로 표시되지 않은 함수 본문에서 쓴 await
이 진단은 async 키워드로 표시되지 않은 메서드나 함수 본문에서 await를 사용했을 때 analyzer가 만들어 내는 진단이에요. await는 비동기(asynchronous) 함수 안에서만 await 표현식으로 동작하거든요.
본문
Undefined name 'await' in function body not marked with 'async'. — async로 표시되지 않은 함수 본문에서 await라는 이름을 사용했다는 뜻이에요.
설명 (Description)
이 진단은 async 키워드로 표시되지 않은 메서드나 함수 본문에서 선언되지 않은 await라는 이름을 사용했을 때 발생해요. await라는 이름은 비동기 함수 안에서만 await 표현식을 만들어 내거든요.
예시 (Example)
다음 코드는 f의 본문이 async 키워드로 표시되지 않았는데 f의 본문 안에서 await를 사용했기 때문에 이 진단이 발생해요.
void f(Future<void> p) {
await p;
}
해결 방법 (Common fixes)
함수 본문에 async 키워드를 추가하면 돼요.
void f(Future<void> p) async {
await p;
}