async_return_with_no_await
async_return_with_no_await
Dart 분석기(analyzer)가 만들어 내는 'async_return_with_no_await' 진단에 대한 설명이에요. 비동기 함수에서 Future를 await 없이 반환하지 말라는 규칙이에요.
본문
설명
분석기는 비동기(async) 함수 안에서 Future를 await 없이 반환하면 이 진단을 만들어 내요.
Future를 await 하지 않은 채로 비동기 함수에서 반환하면, 그 Future가 던지는 예외가 예상대로 전파되지 않을 수 있어요. await 지점에서 예외가 던져지면 예외의 출처를 찾기 쉬워지고 디버깅하기도 훨씬 수월해져요.
예시
다음 코드는 futureString이 반환하는 Future를 await 없이 반환하기 때문에 이 진단이 발생해요:
Future<String> futureString(Future<String> value) async {
return value;
}
일반적인 수정 방법
반환하는 Future 앞에 await를 붙여요:
Future<String> futureString(Future<String> value) async {
return await value;
}
await를 쓸 필요가 없다면 함수 본문에서 async를 제거해요:
Future<String> futureString(Future<String> value) {
return value;
}