• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

비동기로 콜백을 받는다는 것이 무슨 뜻인가요?

22.10.31 17:54 작성 조회수 252

2

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

library에서 제공하는 기능인 pickImage 설명할 때

return을 Future<file>로 하는데 Future라는 방식이 비동기로 콜백을 받는다고 설명하셨어요.

그게 무슨 뜻일까요?

답변 1

답변을 작성해보세요.

0

일반적으로 짜던 코드 방식이 동기 방식입니다.

비동기는 오래걸리는 처리를 생각하시면 되고, Dart에서는 리턴 타입이 Future<타입> 형태인 함수입니다.
이에 대한 결과를 콜백함수를 통해 받는 방식이 있고, async - await 를 사용하는 방식이 있습니다.

콜백은 대체로 다음과 같은 형태입니다.

a 코드;
비동기함수().then((value) => c코드);
b 코드;

위 수행 결과는

a -> b -> c 순서로 진행됩니다. 비동기함수가 오래 걸리고 나중에 c코드가 콜백으로 실행되기 때문입니다.

또 다른 방법은 async- await 방식입니다. 동기 방식으로 코드를 작성합니다.

어떤함수() async {
a 코드;
await 비동기함수();

c 코드;

b 코드;

}

 

위 코드는 비동기함수가 끝날때까지 대기하고 순서대로 실행됩니다. 이 강의에서는 잘 등장하지 않습니다.

신영현님의 프로필

신영현

질문자

2022.11.01

설명 감사합니다! ^^ 이해되었습니다.