반응형

Study/Dart,Flutter 25

5. Dart Flutter, 플러터의 비동기의 Return, then과 try catch

이전 포스팅한 내용은 Dart에서 비동기가 어떻게 작동하고 어떻게 제어하는지 포스팅을 했었다. 이번에는 비동기 함수의 결괏값을 어떻게 받아오는지 알아보자. 결론 Dart의 비동기함수의 예외처리는 두 가지 방법이 있다. 첫 번째는, try catch finally로 한다. try를 진행하고 에러가 발생하면 catch가 작동하며 try 혹은 catch작동 이후 finally가 실행된다. 두 번째는, then catchError, whenComplete를 사용한다. 작동은 try가 then, catch가 catchError, finally가 whenComplete라고 생각하면 된다. 둘 중에 무엇이 좋다고 딱 잘라서 말을 할 순 없다. 하지만 잘 짠 코드에서는 코드의 가독성도 중요하므로 상황에 맞게 사용하도록..

Study/Dart,Flutter 2021.07.30

4. Dart Flutter, 플러터의 비동기식 Future, await 그리고 async

포스팅이 점점 더 기초적으로 가지만, 짚고 넘어가야 할 것 같아서 작성하게 되었다. 앞서 Dart의 비동기의 작동방식을 살펴보았다. 그러면 어떻게 사용하는지 살펴보자. 바쁜 사람을 위한 빠른 결론! Dart Flutter에서 비동기식을 사용할 때 Future, async, await를 사용한다. 함수 이름 앞 Future은 반환을 나타낸다. 가독성을 위해 적는것을 추천하지만, 생략해도 무방하다. await를 사용하기 위해서는 반드시 async가 적혀있어야한다. await를 사용하면 비동기 함수가 끝날때까지 기다리며, await를 사용하지않으면 기다리지않는다. 비동기함수가 끝났음을 알리고싶다면 Callback함수를 이용하여 알릴 수 있다. 직전 포스팅을 안 읽은 사람들을 위해 Dart 공식홈페이지 링크를 ..

Study/Dart,Flutter 2021.07.28

3. Dart Flutter, Asynchronous, Isolates와 Event Loop 에 관한 고찰

오늘은 이론적인 내용을 다뤄보도록 하자. Flutter로 개발을 하면 흔하게 사용하는 Future, async 그리고 await가 비동기식으로 작동하는 원리를 파악해보려고 한다. 먼저 Dart 공식 홈페이지에서 찾아보았다. https://dart.dev/codelabs/async-await Asynchronous programming: futures, async, await Learn about and practice writing asynchronous code in DartPad! dart.dev 읽어보면 Asynchronous 즉 비동기식 프로그래밍, futures, async 그리고 await에 관련된 내용이 나온다. 비동기식이란 동시에 일어나지 않게 일처리 하는 방식을 뜻하며, 동기식의 반대되는..

Study/Dart,Flutter 2021.07.23

2. 플러터 Navigator와 onGenerateRoute그리고 popUntil 의 고찰

앱 페이지를 넘기는 과정 중, PushName과 Pop만 사용하다가 popUntil을 사용해야 했다. 별생각 없이 PushNamed처럼 popUntil을 사용하는데 검은색 화면만 떠서 왜 안 될까 했는데 이번에 해결을 해서 포스팅하기로 했다. 바쁜 사람을 위한 결론! MaterialApp 혹은 CupertinoApp의 Parameter, onGenerator에 RouteGenerator을 선언했다고 popUntil이 되는 것이 아니다. 정확히는 ModalRoute.withName에 저장이 되지 않는다. ModalRoute.withName으로 Page이름을 적기 위해서는 Navigator push 할 때 MaterialPageRoute 또는 CupertinoPageRoute의 Parameter, setti..

Study/Dart,Flutter 2021.05.15

1. Dart Flutter, Future의 whenComplete, then 그리고 catchError의 고찰(수정)

Flutter로 앱 개발 중, 비동기식에 Future의 WhenComplete와 Then의 차이점이 문득 궁금해졌다. 그리고 catchError는 어떻게 작동할까? 바쁜 사람을 위해 결론! Then과 whenComplete는 역할이 다르다. Then은 Error가 없다면 결괏값을 value로 받아서 실행한다. 하지만, Error가 Return 되면 출력이 되지 않는다. WhenComplete는 Future가 끝나면 무조건 실행된다.(Error 발생 유무에 관계가 없다.) catchError는 Error가 Return이 될 때 작동하며, Error가 Return 되더라도 catchError가 있다면 Then이 실행된다. 1. Then, whenComplete, catchError,는 try, catch, ..

Study/Dart,Flutter 2021.05.12
반응형