async_return_with_no_await

async_return_with_no_await

Dart 분석기(analyzer)가 만들어 내는 'async_return_with_no_await' 진단에 대한 설명이에요. 비동기 함수에서 Futureawait 없이 반환하지 말라는 규칙이에요.

출처: async_return_with_no_await

본문

설명

분석기는 비동기(async) 함수 안에서 Futureawait 없이 반환하면 이 진단을 만들어 내요.

Futureawait 하지 않은 채로 비동기 함수에서 반환하면, 그 Future가 던지는 예외가 예상대로 전파되지 않을 수 있어요. await 지점에서 예외가 던져지면 예외의 출처를 찾기 쉬워지고 디버깅하기도 훨씬 수월해져요.

예시

다음 코드는 futureString이 반환하는 Futureawait 없이 반환하기 때문에 이 진단이 발생해요:

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;
}

더 알아보기