「一定時間経過した後に処理を実行したい」
こんな悩みを解決します。
今回は一定時間経過後に処理を遅らせて実行する方法を2つ解説していきます!
目次
方法
一定時間経過してから処理を実行させる方法を2つ解説します。
Future.delayed()
1つ目の方法はFutureクラスのdeleyedメソッドを使用する方法です。
Future.delayedの第一引数にDurationクラスを渡して遅延させる時間を指定します。また任意ですが第二引数に無名関数を渡して指定時間経過後に実行する処理を指定することも可能です。
Future.delayedは非同期処理なのでawaitの宣言を忘れないよう注意です。
Future.delayed(Duration(seconds: 5));
void main() async {
print('スタート');
await Future.delayed(Duration(seconds: 5), () {
print('5秒経過しました');
});
}
sleep()
2つ目の方法はsleep関数を使用する方法です。
sleep関数を使用するにはdart:ioライブラリのインポートが必要になります。sleepは先ほどのFuture.delayed同様にDurationで遅延させる時間を指定します。(awaitの宣言は不要)
sleep(Duration(seconds: 5));
import 'dart:io';
void main() {
print('スタート');
sleep(Duration(seconds: 5));
print('5秒経過しました');
}
まとめ
今回は一定時間経過後に処理を遅らせて実行する方法について解説しました。