인프런 커뮤니티 질문&답변
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언어에서도 배우셨듯이 함수가 실행 완료 될때마다 하나씩 소멸됩니다~





