Flutter

비동기, Future , Then

Dean83 2023. 3. 7. 16:17

비동기 프로그래밍은 어디서나 필수이고 많이 쓰이고 있다. 

요즘 개발 트랜드를 보면, 백앤드 서버에 모든 로직을 구현해놓고, 프론트앤드 혹은 앱은 해당 데이터를 받아

화면에 보여주는 역할을 한다. 

 

예전처럼 단독으로 구동되는 앱은 거의 없고, 때문에 프론트, 앱 쪽은 특별한 알고리즘이나 문제해결 관련

코드가 들어가는 일이 적어지고 있다. 

 

가장 주요한 것은 서버로부터 데이터를 받아오는것, 그리고 그 데이터를 화면에 보여주는것이다. 

특히나 서버로부터 데이터를 받아오는 경우는 비동기로 수행이 되어야 한다. 

 

다양한 방식의 비동기를 플러터에서는 제공하고 있고, Future, Then을 생각해보려 한다. 

 

1. Future
    - 비동기로 수행하라고 하는 명령이자 기본 클래스이다. 

    - 함수선언 리턴값으로 Future 를 리턴하여 구현한다

 

Future<String> TestFutureFunc()
{
	....
    return 문자열

}

 

2. Then
    - 비동기 결과가 리턴되었을때 이어서 하고 싶은 작업을 작성한다. 

void Main()
{
	Future future = testFutureFunc()
    future.then((returnval) => { ....
    
    }); 
    
    또는, 
    testFutureFunc().then((returnval) => { ....
    
    });

 

3. CatchError

     - 에러를 catch 할때 사용하는 함수. 

......
testfunc().then(...).catchError((error) => ....)

 

보통 비동기 작업을 하면, 비동기 함수 호출을 하고 다음 명령을 실행한다. 

그리고 비동기 작업 종료후에 특정 작업을 해야 하는 경우가 있다. 

 

이전에는 보통 콜백이나 delegate 등을 이용하여 동작하거나, 커스텀이벤트를 발생시켜 동작하였다. 

then 을 이용하면 위의 코드들을 구현하는 불편함을 없앨 수 있어서 매우 유용하다고 생각된다. 

'Flutter' 카테고리의 다른 글

Slivers, CustomScrollView  (0) 2023.03.14
Builder (StreamBuilder, FutureBuilder)  (0) 2023.03.14
Stream (Kotlin 라이브데이터)  (0) 2023.03.14
Stateful, Stateless 위젯  (0) 2023.02.17
Flutter 첫느낌, 그리고 위젯  (0) 2023.02.14