강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

lemonhush89님의 프로필 이미지
lemonhush89

작성한 질문수

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

await 관련

작성

·

276

0

강사님 안녕하세요,

await 관련해서 질문있습니다.

 

1) HomeScreen

int? result = await Navigator.of(context).push<int>(MaterialPageRoute(~~~))

2) SettingsScreen

Navigator.of(context).pop(maxNumber)

 

1번 코드를 통해 SettingsScreen 으로 이동한 후 2번 코드를 사용하지 않고 뒤로가기 버튼을 통해 HomeScreen(1번 페이지)로 복귀한 경우, await가 콜백(결과값?)을 받기 위해 스케쥴이나 대기열(?)에 등록된 상태일 것 같은데 이 상태에서 다시 1번 코드를 사용해서 SettingsScreen으로 이동하는 경우, 스케쥴(대기열?)에 동일한 await 가 2개 등록되는 것인지 궁금합니다!

만약 2개가 등록된다면 1개는 사용하지 않는 메모리(가비지..?)가 되는지도 궁금합니다...

감사합니다!

* C언어 기초는 공부하고 학습하고 있기는 한데 전공자가 아니라...단어나 개념이 정확하지 않습니다;;ㅠㅠ

답변 1

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

실행한 함수들은 콜 스택에 올라가게 될것이고 라우트는 따로 라우트 스택이 존재합니다!

연속적으로 await를 당연히 할 수 있으시며 C언어에서도 배우셨듯이 함수가 실행 완료 될때마다 하나씩 소멸됩니다~

lemonhush89님의 프로필 이미지
lemonhush89

작성한 질문수

질문하기