미래에 받아올 값을 뜻한다. List나 Set처럼 제네릭으로 어떤 값을 받아올지 지정할 수 있다.
Future<int> number;
Future func; // dynamic
future.delayed를 사용하면 일정 시간 후 콜백 함수를 실행할 수 있다.
Future.delayed(Duration(seconds:3),(){
print('delay');
}
);
print('done');
결과:
done
delay
다음과 같이 async, await 키워드를 사용하면 코드가 작성된 순서로 실행되기 때문에 비동기 프로그래밍을 유지하면서도 코드 가독성을 유지할 수 있다.
Future Add(int number1, int number2) async{
await Future.delayed(Duration(seconds:3),()=> print(number1+number2)); // 1
print('done'); // 2
}
결과:
3
done