본문 바로가기
Flutter

Bloc에서 event를 await 하는 방법

by 붕어사랑 티스토리 2024. 8. 14.
반응형

그런거 없다

 

 

하지만 다른 방법은 있다. 바로 callback 을 사용하면 된다.

 

 

bloc에서 이벤트를 await 하고 싶은 목적은 아마 state 변경 이벤트를 날리고 이후 변경된 state를 이용하여 무언가를 하기 위한 것 일 것이다.

 

답은 간단하다. state 를 emit 한 후 콜백을 이용하여 이후 작업을 마저 수행해주면 된다.

 

 

 

final class MyEvent extends StudyEvent {
  void Function()? callback;
  StopStudyEvent({
    this.callback,
  });
}

 

 

myBloc.add(MyEvent(
    callback: () async {
      하고싶은일 적으면 된다
      }
    }));

 

 

이렇게 이벤트에 콜백을 받아와서 state 를 emit 한 후 콜백을 호출하면 끝

 

 

 

 

 

 

다른방법은 아래 코드를 이용하면 된다 이벤트를 날려주고 awai를 하는 것. 하지만 원하는 이벤트를 명확하게 지저애서 await 하는게 아니라서 좀 그렇다

final nextState = await userBloc.stream.first;

 

반응형

댓글