TIL: Flutter | Dart (12) 비동기 프로그래밍 (futrue) - 221212

Lumpen·2022년 12월 11일
0

Dart

목록 보기
12/20

비동기 프로그래밍

future는 비동기 메소드로 다른 언어에서도 종종 사용된다고 한다
자바스크립트의 promise 와 비슷한 역할을 하는듯

future

  1. Uncompleted - 미완료: future 객체를 만들어서 작업을 요청한 상태
  2. Completed - 완료: 요청한 작업 완료 상태
    2-1. data - 정상적으로 완료되어 결과값을 리턴
    2-2. error - 작업 처리 중 문제 발생으로 에러와 함께 완료

future 는 상태별로 이벤트 루프에 의해 순차적으로 처리된다

future 객체를 만들 때 타입은 Futrue 와 같이 제네릭을 사용한다
만약 제네릭 타입에 String을 넘겨주면 return 타입도 String이다

future 객체를 만들어서 작업이 시작된 상태가 Uncompleted 상태로
현재 상태를 event queue에 넣고 다음 작업으로 넘어간다
future의 작업 완료 시 then() 이 호출되고 이 때는 Completed 상태이다
then의 첫번째 인자는 콜백함수이고
두 번째 인자는 onError(e)이다
이 때 onError()는 future의 결과값 대신 에러를 가졌을 때에만 동작

.then().catchError() 는 내부 함수에서 발생한 모든 에러를 처리할 수 있다

async / await

다트에도 async / await 가 있다
비동기 작업 끼리 동기적 처리를 할 수 있다

profile
떠돌이 생활을 하는. 실업자는 아니지만, 부랑 생활을 하는

0개의 댓글