Dart - Asynchronous

future

  • ๋น„๋™๊ธฐ ์ž‘์—…์˜ ๊ฒฐ๊ณผ

  • ์™„๋ฃŒ, ๋ฏธ์™„๋ฃŒ ๋‘ ๊ฐ€์ง€ ์ƒํƒœ๋ฅผ ๊ฐ€์ง

์˜ˆ์ œ

// ์ฝ”๋“œ
Future<int> futureTest() {
  return Future<int>.delayed(Duration(seconds: 3), () => 100);
}

void main() {
  print('start');

  Future<int> future = futureTest();

  future.then((val) => print('val : $val'))
    .catchError((error) => print('error : $error'));

  print('end');
}

// ์ถœ๋ ฅ
start
end
val : 100
  • futureTest ํ•จ์ˆ˜ ์‹คํ–‰ ํ›„ 3์ดˆ ๋’ค์— Future๊ฐ€ ๋ฐ˜ํ™˜

  • then ๋‚ด๋ถ€์˜ ํ•จ์ˆ˜์—์„œ Future์˜ ๊ฐ’์„ ํ•ธ๋“ค๋ง

  • Future ๋‚ด๋ถ€์—์„œ Exception ๋ฐœ์ƒ ์‹œ catchError๋กœ Exception์ด ์ „๋‹ฌ๋จ

async / await

  • async : ๋น„๋™๊ธฐ ํ•จ์ˆ˜ ์ •์˜

  • await : ํ•ด๋‹น ๋™์ž‘์„ ์™„๋ฃŒ ํ›„ ๋‹ค์Œ ๊ตฌ๋ฌธ ์‹คํ–‰

  • Future ๋ฉ”์†Œ๋“œ๋ฅผ await ํ•  ๊ฒฝ์šฐ Future<T>๋ฅผ ๋ฐ˜ํ™˜ ํ•˜์ง€ ์•Š๊ณ  T๊ฐ€ ๋ฐ˜ํ™˜๋จ

Last updated