티스토리 뷰

Dart에서 sleep 함수를 사용하여 몇초간 코드 실행을 중지/지연시킬 수 있습니다.

 

예제와 함께 알아보겠습니다.

 

async를 이용한 방법

async와 Future를 이용하여 코드 실행을 수초간 지연시키는 방법입니다. Duration을 사용하여 초 단위로 인자를 전달하도록 구현하였습니다.

import 'dart:async';

void main() async {
  print('시작');

  await Future.delayed(Duration(seconds: 1));

  print('1초 후');
}

위의 코드를 아래와 같이 delay() 함수 안으로 이동시켜 좀 더 깔끔하게 보이도록 만들 수 있습니다.

 Future.delayed()에서 지연시키기 때문에 동작 원리는 위와 같습니다.

import 'dart:async';

Future<void> delay(int seconds) {
  return Future.delayed(Duration(seconds: seconds));
}

void main() async {
  print('시작');

  await delay(3);

  print('3초 후');
}

 

sleep()을 이용한 방법

단순히 sleep()을 이용하여 동기적으로 몇초를 지연시킬 수 있습니다. 인자로 Duration을 전달할 수 있으며, 초 단위로 입력할 수 있습니다.

import 'dart:io';

void main() {
  print('시작');

  sleep(Duration(seconds: 2));

  print('2초 후');
}