인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Seunghee Park님의 프로필 이미지
Seunghee Park

작성한 질문수

Flutter 응용 - 공공 API를 활용한 앱 만들기 (MVVM 패턴)

재고 수, 새로고침, 로딩중 표시

loading될 때 delay주는 방법

작성

·

506

0

안녕하세요.

데이터가 로딩될 때 5초간 delay 주는 방법이 있을까요?

아래와 같이 두 가지 방법을 찾았습니다.

하지만 아래의 코드를 적용하려면 fetch 함수를 수정해줘야겠죠?

다른 방법으로 timer을 주는 방법이 혹시 있나요?

// example 1
Future<bool> _getFutureBool() {
    return Future.delayed(Duration(milliseconds: 500))
        .then((onValue) => true);
}

// example 2
print('1');
Future.delayed(const Duration(milliseconds: 500), () {
    print('Hello, world');
});
print('2');

답변 3

0

오준석님의 프로필 이미지
오준석
지식공유자

fetch() 함수 내 첫 줄에 await _getFutureBool(); 을 추가하시면 강제로 5초 후에 데이터 가지고 오겠네요.

0

Seunghee Park님의 프로필 이미지
Seunghee Park
질문자

loadingWidget()에 추가를 해줘야 할까요? 

 Future<bool> _getFutureBool() async {
    return Future.delayed(Duration(milliseconds: 5000)).then((onValue) => true);
  }
}

 이런 방법으로 )_MyHomePageState에 추가를 해주었는데요.

loadingWidget()에 추가하려니 <Widget>만 추가할 수 있다는 경고가 뜹니다

0

오준석님의 프로필 이미지
오준석
지식공유자

위 방법에서 5초이면 Duration(seconds: 5) 또는 Duration(milliseconds: 5000) 을 사용하시면 됩니다. 이 방법이 가장 심플한 방법입니다. 함수 선언에 async 키워드는 추가해 줘야겠지요.

Seunghee Park님의 프로필 이미지
Seunghee Park

작성한 질문수

질문하기