티스토리 뷰
일반적으로 void와 Future <void>는 같지 않다.
void

void f()는 아무것도 반환하지 않는 함수이다. 아래 결과를 보면 순차적으로 실행되면서 myVoid() 함수의 완료는 보장하지 않고 비동기 함수를 실행시킨다. 그래서 결과적으로 myVoid2가 main2보다 늦게 등장하게 되었다.
Future<void>

Future <void> f()는 동일하게 아무것도 반환하지 않지만, 호출자가 async/await을 통해 함수의 완료 시점을 결정할 수 있다. 위와 동일하게 순차적으로 함수를 실행하지만 중간 비동기 함수 myVoid()에 async/await을 통해 함수의 완료를 보장하고, 그 이후에 다음 코드를 실행시켰다. 결과적으로 myVoid 1, myVoid2 출력 후에 main2를 출력하는 것을 볼 수 있다.
void로 선언한 함수에 async/await을 사용하면 다음과 같이 에러가 뜬다.

결과적으로 비동기적인 코드를 짤 때는 Future를 잘 적어주자.
'Flutter' 카테고리의 다른 글
| [Flutter] Function Widget과 Class Widget (0) | 2022.11.29 |
|---|
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Vue
- Repository Pattern
- 프로그래머스
- 파이썬
- js
- python
- SOAP API
- webpack
- bundler
- error
- 백준
- 문제풀이
- Preloading
- Vuex
- GraphQL
- React.memo
- 알고리즘
- 상호평가
- AxiosInterceptor
- v-for
- Vue.js
- programmers
- TypeScript
- reactrouter
- redux-thunk
- SPA
- Transpiler
- clean code
- redux
- React
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함
