불필요한 'unawaited' 사용
불필요한 'unawaited' 사용 (unnecessary_unawaited)
이 문서는 Dart 분석기(analyzer)가 만들어 내는 unnecessary_unawaited 진단(diagnostic)에 대해 설명해요. 함수·메서드·연산자 호출이나 필드·게터·최상위 변수 참조를 안전하게 await하지 않는 것으로 표시하기 위해 unawaited를 사용했는데, 호출된 멤버가 이미 @awaitNotRequired로만 주석 처리되어 있을 때 분석기가 이 진단을 알려 줘요. 어떤 경우에 발생하는지, 어떻게 고치는지 함께 알아볼게요.
본문
설명
분석기는 unawaited를 사용해 함수·메서드·연산자 호출이나 필드·게터·최상위 변수 참조를 안전하게 await하지 않는 것으로 표시했는데, 그 호출된 멤버가 이미 @awaitNotRequired로 주석 처리되어 있으면 이 진단을 만들어 내요. 이 주석 자체가 어떤 호출 지점에서든 unawaited로 감싸는 것이 불필요하다는 신호이기 때문이에요.
예시
다음 코드는 @awaitNotRequired로 주석 처리된 함수를 호출할 때 unawaited를 사용했기 때문에 이 진단을 만들어 내요.
import 'dart:async';
import 'package:meta/meta.dart';
@awaitNotRequired
Future log(String message) async => true;
void f() {
unawaited(log('Message.'));
}
일반적인 해결 방법
unawaited 호출을 제거해 주세요.
import 'package:meta/meta.dart';
@awaitNotRequired
Future log(String message) async => true;
void f() {
log('Message.');
}
더 알아보기
- Dart 분석기 진단 목록에서 다른 진단들도 함께 살펴보세요.
- 비동기 프로그래밍과 Future에 대한 자세한 내용은 Dart 공식 문서의 비동기 지원 문서를 참고해요.