[Dev Log] 플러터 입문, 개발

이건우·2023년 11월 27일
0

TiL

목록 보기
70/72

Future?

플러터에서의 future는 지금은 없지만 미래에 요청할것들이 담긴 '그릇'과 같은것이다. 비동기에 자주 쓰이며 계산즉시 결과를 '완료'하여 반환한다.

import "dart:io";
Future<bool> fileContains(String path, String needle) async {
  try {
    var haystack = await File(path).readAsString();
    return haystack.contains(needle);
  } on FileSystemException catch (exception, stack) {
    _myLog.logError(exception, stack);
    return false;
  }
}

함수에 async가 있고 내부에 await이 있는데 실행결과에 따라 future를 반환해야한다. 본 fileContains 함수는 future 문자열이 완료되어야 값을 반환하고 호출할때 했던 원래 future값을 완성하게 된다.

일반적으로 비동기 코드를 작성할때 future가 생성될때마다 항상 기다려야하며, 다음 비동기지연이 끝날때까지 기다리면 안된다. 이는 미래에 발생할 수 있는 모든 오류를 '수신'할 준비가 되어있음을 보장한다.

profile
내가 느낌만알고 한줄도 설명할줄 모른다면 '모르는 것'이다.

0개의 댓글