-
728x90
비동기 프로그래밍
void main() { addNumbers(1,1); addNumbers(2,2); } //1+1=2 //2+2=4 void addNumbers(int number1, int number2){ print('계산중 : $number1 + $number2'); print('계산완료 : ${number1 + number2}'); }
Future
delayed
void main() { //Future - 미래 //미래에 받아올 값 Future<String> name = Future.value('두부'); Future<int> number = Future.value(1); Future<bool> isTrue = Future.value(true); addNumbers(1,1); addNumbers(2,2); // print('함수 시작'); // //2개의 파라미터 // // delayed - 지연되다. // // 1번 파라미터 - 지연할 기간(얼마나 지연할건지) Duration // // 2번 파라미터 - 지연 시간이 지난 후 실행할 함수 // Future.delayed(Duration(seconds:2), (){ // print('Delay 끝'); // }); } void addNumbers(int number1, int number2){ print('계산 시작 : $number1 + $number2'); //서버 시뮬레이션 Future.delayed(Duration(seconds:2),(){ print('계산 완료 $number1 + $number2 = ${number1 + number2}'); }); print('함수 완료'); }
await
void main() { //Future - 미래 //미래에 받아올 값 Future<String> name = Future.value('두부'); Future<int> number = Future.value(1); Future<bool> isTrue = Future.value(true); addNumbers(1,1); addNumbers(2,2); // print('함수 시작'); // //2개의 파라미터 // // delayed - 지연되다. // // 1번 파라미터 - 지연할 기간(얼마나 지연할건지) Duration // // 2번 파라미터 - 지연 시간이 지난 후 실행할 함수 // Future.delayed(Duration(seconds:2), (){ // print('Delay 끝'); // }); } //async 넣어야만 await사용가능 void addNumbers(int number1, int number2)async{ print('계산 시작 : $number1 + $number2'); //서버 시뮬레이션 await Future.delayed(Duration(seconds:2),(){ print('계산 완료 $number1 + $number2 = ${number1 + number2}'); }); print('함수 완료 : $number1 + $number2'); } //await를 사용한 순간 async를 기다리게 할 수 있다.그중에 cpu는 다른 작업을 한다.
실제 값을 리턴
void main() async { //Future - 미래 //미래에 받아올 값 Future<String> name = Future.value('두부'); Future<int> number = Future.value(1); Future<bool> isTrue = Future.value(true); final result1 = await addNumbers(1, 1); final result2 = await addNumbers(2, 2); print('result1: $result1'); print('result2: $result2'); print('result1 + result2 = ${result1 + result2}'); } //실제값 Future<int> addNumbers(int number1, int number2) async { print('계산 시작 : $number1 + $number2'); //서버 시뮬레이션 await Future.delayed(Duration(seconds: 2), () { print('계산 완료 $number1 + $number2 = ${number1 + number2}'); }); print('함수 완료 : $number1 + $number2'); return number1 + number2; }
stream
데이터가 계속 흐른다.
stream을 닫을 때 까지 값을 무한하게 받을 수 있다.
패키지 불러와야함
import 'dart:async'; void main() { final controller = StreamController(); //계속해서 리스닝을 하고 싶으면 asBreadcasStream()을 달아준다. final stream = controller.stream.asBroadcastStream(); final streamListener1 = stream.where((val)=>val%2==0).listen((val){ print('Listener 1 : $val'); }); final streamListener2 = stream.where((val)=>val%2==1).listen((val){ print('Listener 2 : $val'); }); controller.sink.add(1); controller.sink.add(2); controller.sink.add(3); controller.sink.add(4); controller.sink.add(5); }
함수로 stream 받아오기
다트 103
비동기 프로그래밍
void main() { addNumbers(1,1); addNumbers(2,2); } //1+1=2 //2+2=4 void addNumbers(int number1, int number2){ print('계산중 : $number1 + $number2'); print('계산완료 : ${number1 + number2}'); }
Future
delayed
void main() { //Future - 미래 //미래에 받아올 값 Future<String> name = Future.value('두부'); Future<int> number = Future.value(1); Future<bool> isTrue = Future.value(true); addNumbers(1,1); addNumbers(2,2); // print('함수 시작'); // //2개의 파라미터 // // delayed - 지연되다. // // 1번 파라미터 - 지연할 기간(얼마나 지연할건지) Duration // // 2번 파라미터 - 지연 시간이 지난 후 실행할 함수 // Future.delayed(Duration(seconds:2), (){ // print('Delay 끝'); // }); } void addNumbers(int number1, int number2){ print('계산 시작 : $number1 + $number2'); //서버 시뮬레이션 Future.delayed(Duration(seconds:2),(){ print('계산 완료 $number1 + $number2 = ${number1 + number2}'); }); print('함수 완료'); }
await
void main() { //Future - 미래 //미래에 받아올 값 Future<String> name = Future.value('두부'); Future<int> number = Future.value(1); Future<bool> isTrue = Future.value(true); addNumbers(1,1); addNumbers(2,2); // print('함수 시작'); // //2개의 파라미터 // // delayed - 지연되다. // // 1번 파라미터 - 지연할 기간(얼마나 지연할건지) Duration // // 2번 파라미터 - 지연 시간이 지난 후 실행할 함수 // Future.delayed(Duration(seconds:2), (){ // print('Delay 끝'); // }); } //async 넣어야만 await사용가능 void addNumbers(int number1, int number2)async{ print('계산 시작 : $number1 + $number2'); //서버 시뮬레이션 await Future.delayed(Duration(seconds:2),(){ print('계산 완료 $number1 + $number2 = ${number1 + number2}'); }); print('함수 완료 : $number1 + $number2'); } //await를 사용한 순간 async를 기다리게 할 수 있다.그중에 cpu는 다른 작업을 한다.
실제 값을 리턴
void main() async { //Future - 미래 //미래에 받아올 값 Future<String> name = Future.value('두부'); Future<int> number = Future.value(1); Future<bool> isTrue = Future.value(true); final result1 = await addNumbers(1, 1); final result2 = await addNumbers(2, 2); print('result1: $result1'); print('result2: $result2'); print('result1 + result2 = ${result1 + result2}'); } //실제값 Future<int> addNumbers(int number1, int number2) async { print('계산 시작 : $number1 + $number2'); //서버 시뮬레이션 await Future.delayed(Duration(seconds: 2), () { print('계산 완료 $number1 + $number2 = ${number1 + number2}'); }); print('함수 완료 : $number1 + $number2'); return number1 + number2; }
stream
데이터가 계속 흐른다.
stream을 닫을 때 까지 값을 무한하게 받을 수 있다.
패키지 불러와야함
import 'dart:async'; void main() { final controller = StreamController(); //계속해서 리스닝을 하고 싶으면 asBreadcasStream()을 달아준다. final stream = controller.stream.asBroadcastStream(); final streamListener1 = stream.where((val)=>val%2==0).listen((val){ print('Listener 1 : $val'); }); final streamListener2 = stream.where((val)=>val%2==1).listen((val){ print('Listener 2 : $val'); }); controller.sink.add(1); controller.sink.add(2); controller.sink.add(3); controller.sink.add(4); controller.sink.add(5); }
함수로 stream 받아오기
다트 103
비동기 프로그래밍
void main() { addNumbers(1,1); addNumbers(2,2); } //1+1=2 //2+2=4 void addNumbers(int number1, int number2){ print('계산중 : $number1 + $number2'); print('계산완료 : ${number1 + number2}'); }
Future
delayed
void main() { //Future - 미래 //미래에 받아올 값 Future<String> name = Future.value('두부'); Future<int> number = Future.value(1); Future<bool> isTrue = Future.value(true); addNumbers(1,1); addNumbers(2,2); // print('함수 시작'); // //2개의 파라미터 // // delayed - 지연되다. // // 1번 파라미터 - 지연할 기간(얼마나 지연할건지) Duration // // 2번 파라미터 - 지연 시간이 지난 후 실행할 함수 // Future.delayed(Duration(seconds:2), (){ // print('Delay 끝'); // }); } void addNumbers(int number1, int number2){ print('계산 시작 : $number1 + $number2'); //서버 시뮬레이션 Future.delayed(Duration(seconds:2),(){ print('계산 완료 $number1 + $number2 = ${number1 + number2}'); }); print('함수 완료'); }
await
void main() { //Future - 미래 //미래에 받아올 값 Future<String> name = Future.value('두부'); Future<int> number = Future.value(1); Future<bool> isTrue = Future.value(true); addNumbers(1,1); addNumbers(2,2); // print('함수 시작'); // //2개의 파라미터 // // delayed - 지연되다. // // 1번 파라미터 - 지연할 기간(얼마나 지연할건지) Duration // // 2번 파라미터 - 지연 시간이 지난 후 실행할 함수 // Future.delayed(Duration(seconds:2), (){ // print('Delay 끝'); // }); } //async 넣어야만 await사용가능 void addNumbers(int number1, int number2)async{ print('계산 시작 : $number1 + $number2'); //서버 시뮬레이션 await Future.delayed(Duration(seconds:2),(){ print('계산 완료 $number1 + $number2 = ${number1 + number2}'); }); print('함수 완료 : $number1 + $number2'); } //await를 사용한 순간 async를 기다리게 할 수 있다.그중에 cpu는 다른 작업을 한다.
실제 값을 리턴
void main() async { //Future - 미래 //미래에 받아올 값 Future<String> name = Future.value('두부'); Future<int> number = Future.value(1); Future<bool> isTrue = Future.value(true); final result1 = await addNumbers(1, 1); final result2 = await addNumbers(2, 2); print('result1: $result1'); print('result2: $result2'); print('result1 + result2 = ${result1 + result2}'); } //실제값 Future<int> addNumbers(int number1, int number2) async { print('계산 시작 : $number1 + $number2'); //서버 시뮬레이션 await Future.delayed(Duration(seconds: 2), () { print('계산 완료 $number1 + $number2 = ${number1 + number2}'); }); print('함수 완료 : $number1 + $number2'); return number1 + number2; }
stream
데이터가 계속 흐른다.
stream을 닫을 때 까지 값을 무한하게 받을 수 있다.
패키지 불러와야함
import 'dart:async'; void main() { final controller = StreamController(); //계속해서 리스닝을 하고 싶으면 asBreadcasStream()을 달아준다. final stream = controller.stream.asBroadcastStream(); final streamListener1 = stream.where((val)=>val%2==0).listen((val){ print('Listener 1 : $val'); }); final streamListener2 = stream.where((val)=>val%2==1).listen((val){ print('Listener 2 : $val'); }); controller.sink.add(1); controller.sink.add(2); controller.sink.add(3); controller.sink.add(4); controller.sink.add(5); }
함수로 stream 받아오기
다트 103
비동기 프로그래밍
void main() { addNumbers(1,1); addNumbers(2,2); } //1+1=2 //2+2=4 void addNumbers(int number1, int number2){ print('계산중 : $number1 + $number2'); print('계산완료 : ${number1 + number2}'); }
Future
delayed
void main() { //Future - 미래 //미래에 받아올 값 Future<String> name = Future.value('두부'); Future<int> number = Future.value(1); Future<bool> isTrue = Future.value(true); addNumbers(1,1); addNumbers(2,2); // print('함수 시작'); // //2개의 파라미터 // // delayed - 지연되다. // // 1번 파라미터 - 지연할 기간(얼마나 지연할건지) Duration // // 2번 파라미터 - 지연 시간이 지난 후 실행할 함수 // Future.delayed(Duration(seconds:2), (){ // print('Delay 끝'); // }); } void addNumbers(int number1, int number2){ print('계산 시작 : $number1 + $number2'); //서버 시뮬레이션 Future.delayed(Duration(seconds:2),(){ print('계산 완료 $number1 + $number2 = ${number1 + number2}'); }); print('함수 완료'); }
await
void main() { //Future - 미래 //미래에 받아올 값 Future<String> name = Future.value('두부'); Future<int> number = Future.value(1); Future<bool> isTrue = Future.value(true); addNumbers(1,1); addNumbers(2,2); // print('함수 시작'); // //2개의 파라미터 // // delayed - 지연되다. // // 1번 파라미터 - 지연할 기간(얼마나 지연할건지) Duration // // 2번 파라미터 - 지연 시간이 지난 후 실행할 함수 // Future.delayed(Duration(seconds:2), (){ // print('Delay 끝'); // }); } //async 넣어야만 await사용가능 void addNumbers(int number1, int number2)async{ print('계산 시작 : $number1 + $number2'); //서버 시뮬레이션 await Future.delayed(Duration(seconds:2),(){ print('계산 완료 $number1 + $number2 = ${number1 + number2}'); }); print('함수 완료 : $number1 + $number2'); } //await를 사용한 순간 async를 기다리게 할 수 있다.그중에 cpu는 다른 작업을 한다.
실제 값을 리턴
void main() async { //Future - 미래 //미래에 받아올 값 Future<String> name = Future.value('두부'); Future<int> number = Future.value(1); Future<bool> isTrue = Future.value(true); final result1 = await addNumbers(1, 1); final result2 = await addNumbers(2, 2); print('result1: $result1'); print('result2: $result2'); print('result1 + result2 = ${result1 + result2}'); } //실제값 Future<int> addNumbers(int number1, int number2) async { print('계산 시작 : $number1 + $number2'); //서버 시뮬레이션 await Future.delayed(Duration(seconds: 2), () { print('계산 완료 $number1 + $number2 = ${number1 + number2}'); }); print('함수 완료 : $number1 + $number2'); return number1 + number2; }
stream
데이터가 계속 흐른다.
stream을 닫을 때 까지 값을 무한하게 받을 수 있다.
패키지 불러와야함
import 'dart:async'; void main() { final controller = StreamController(); //계속해서 리스닝을 하고 싶으면 asBreadcasStream()을 달아준다. final stream = controller.stream.asBroadcastStream(); final streamListener1 = stream.where((val)=>val%2==0).listen((val){ print('Listener 1 : $val'); }); final streamListener2 = stream.where((val)=>val%2==1).listen((val){ print('Listener 2 : $val'); }); controller.sink.add(1); controller.sink.add(2); controller.sink.add(3); controller.sink.add(4); controller.sink.add(5); }
함수로 stream 받아오기
728x90