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}');
}
final List database = [];
void main(List<String> arguments) {
final result = register({
'email': 'abc@abc.com',
'password': '123456',
'name': 'John Doe',
});
print(result.call());
print(database);
}
Function register(user) {
return saveDb(user, (user) {
return sendEmail(user, (user) {
return getResult(user);
});
});
}
Function saveDb(user, callback) {
print('saving $user to db');
return callback(user);
}
Function sendEmail(user, callback) {
print('sending email to $user');
database.add(user);
return callback(user);
}
Function getResult(user) {
return () => 'success register $user';
}
var delay = Future.delayed(Duration(seconds: 5));
void main() {
myFunction();
}
void myFunction() {
print('start');
Future.delayed(Duration(seconds: 2), () {
print('2 seconds');
});
print('end');
}
void main() {
var delay = Future.delayed(Duration(seconds: 3));
delay
.then((value) => print('3초 지남')) // 오래걸리는 작업 처리
.catchError((e) => print(e)); // 에러처리
hello().then((value) => print(value));
}
Future<String> hello() async {
await Future.delayed(Duration(seconds: 3));
return 'Hello';
}
void main() {
// Future - 미래
// 미래에 받아올 값
Future<String> name = Future.value('코드팩토리');
Future<int> number = Future.value(1);
Future<bool> isTrue = Future.value(true);
print('함수 시작');
// 2개의 파라미터
// delayed - 지연되다.
// 1번 파라미터 - 지연할 기간 (얼마나 지연할 건지) Duration
// 2번 파라미터 - 지연 시간이 지난 후 실행할 함수
Future.delayed(Duration(seconds: 2), () {
print('Delay 끝');
// });
}
void main() {
// Future - 미래
// 미래에 받아올 값
Future<String> name = Future.value('코드팩토리');
Future<int> number = Future.value(1);
Future<bool> isTrue = Future.value(true);
addNumbers(1, 1);
}
void addNumbers(int number1, int number2) {
print('계산 시작 : $number1 + $number2');
// 서버 시뮬레이션
Future.delayed(Duration(seconds: 2), () {
print('계산 완료: $number1 + $number2 = ${number1 + number2}');
});
print('함수완료');
}
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);
}
void addNumbers(int number1, int number2) {
print('계산 시작 : $number1 + $number2');
// 서버 시뮬레이션
Future.delayed(Duration(seconds: 2), () {
print('계산 완료: $number1 + $number2 = ${number1 + number2}');
});
print('함수완료');
}
void main() {
final user = {
'email': 'abc@abc.com',
'password': '123456',
'name': 'John Doe',
};
saveDb(user)
.then((_) => sendEmail(user))
.then((_) => getResult(user))
.then((value) => print(value));
}
delay
.then((value) => print('I have been waiting'))
.catchError((err) => print(err));
import 'callback_test.dart';
void main() {
final user = {
'email': 'abc@abc.com',
'password': '123456',
'name': 'John Doe',
};
saveDb(user)
.then((_) => sendEmail(user))
.catchError((err) => print('save db error: $err')) // 예외 발생
.then((_) => getResult(user))
.then((value) => print(value)));
}
Future<void> saveDb(user) async {
print('saving $user to db');
}
Future<void> sendEmail(user) async {
await Future.delayed(Duration(seconds: 2));
await Future.error(Exception('error save db'));
print('sending email to $user');
database.add(user);
}
Future<String> getResult(user) async {
return 'success register $user';
}
import 'callback_test.dart';
void main() {
final user = {
'email': 'abc@abc.com',
'password': '123456',
'name': 'John Doe',
};
saveDb(user)
.then((_) => sendEmail(user))
.catchError((err) => print('save db error: $err')) // 예외 발생
.catchError((err) =>
throw Exception('error send email')) // throw Exception()으로 예외를 발생
.then((_) => getResult(user))
.then((value) => print(value));
}
Future<void> saveDb(user) async {
print('saving $user to db');
}
Future<void> sendEmail(user) async {
await Future.delayed(Duration(seconds: 2));
await Future.error(Exception('error save db'));
print('sending email to $user');
database.add(user);
}
Future<String> getResult(user) async {
return 'success register $user';
}
import 'callback_test.dart';
void main() {
final user = {
'email': 'abc@abc.com',
'password': '123456',
'name': 'John Doe',
};
saveDb(user)
.then((_) => sendEmail(user))
// .catchError((err) => print('save db error: $err')) // 예외 발생
.catchError((err) =>
throw Exception('error send email')) // throw Exception()으로 예외를 발생
.then((_) => getResult(user))
.then((value) => print(value))
.whenComplete(() => print('완료')); // whenComplete()는 성공, 실패 관계없이 실행
}
Future<void> saveDb(user) async {
print('saving $user to db');
}
Future<void> sendEmail(user) async {
await Future.delayed(Duration(seconds: 2));
await Future.error(Exception('error save db'));
print('sending email to $user');
database.add(user);
}
Future<String> getResult(user) async {
return 'success register $user';
}
Future<String> runInTheFuture() async {
var data = await Future.value('world');
return 'hello $data';
}
void main() {
// Future - 미래
// 미래에 받아올 값
Future<String> name = Future.value('코드팩토리');
Future<int> number = Future.value(1);
Future<bool> isTrue = Future.value(true);
addNumbers(1, 1);
}
void addNumbers(int number1, int number2) async {
print('계산 시작 : $number1 + $number2');
// 서버 시뮬레이션
await Future.delayed(Duration(seconds: 2), () {
print('계산 완료: $number1 + $number2 = ${number1 + number2}');
});
print('함수 완료 : $number1 + $number2');
}
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);
}
void addNumbers(int number1, int number2) async {
print('계산 시작 : $number1 + $number2');
// 서버 시뮬레이션
await Future.delayed(Duration(seconds: 2), () {
print('계산 완료: $number1 + $number2 = ${number1 + number2}');
});
print('함수 완료 : $number1 + $number2');
}
void main() async {
// Future - 미래
// 미래에 받아올 값
Future<String> name = Future.value('코드팩토리');
Future<int> number = Future.value(1);
Future<bool> isTrue = Future.value(true);
await addNumbers(1, 1);
await addNumbers(2, 2);
}
Future<void> addNumbers(int number1, int number2) async {
print('계산 시작 : $number1 + $number2');
// 서버 시뮬레이션
await Future.delayed(Duration(seconds: 2), () {
print('계산 완료: $number1 + $number2 = ${number1 + number2}');
});
print('함수 완료 : $number1 + $number2');
}
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;
}
Future<void> saveDb(user) async {
print('saving $user to db');
}
Future<void> sendEmail(user) async {
await Future.delayed(Duration(seconds: 2));
print('sending email to $user');
database.add(user);
}
Future<String> getResult(user) async {
return 'success register $user';
}
import 'callback_test.dart';
void main(List<String> arguments) async {
final user = {
'email': 'abc@abc.com',
'password': '123456',
'name': 'John Doe',
};
saveDb(user)
.then((_) => sendEmail(user))
.catchError((err) => print('save db error: $err')) // 예외 발생
.catchError((err) =>
throw Exception('error send email')) // throw Exception()으로 예외를 발생
.then((_) => getResult(user))
.then((value) => print(value))
.whenComplete(() => print('완료')); // whenComplete()는 성공, 실패 관계없이 실행
final String result = await register(user);
print(result);
}
Future<void> saveDb(user) async {
print('saving $user to db');
}
Future<void> sendEmail(user) async {
await Future.delayed(Duration(seconds: 2));
// await Future.error(Exception('error save db'));
print('sending email to $user');
database.add(user);
}
Future<String> getResult(user) async {
return 'success register $user';
}
Future<String> register(user) async {
await saveDb(user);
await sendEmail(user);
return await getResult(user);
}
void main(List<String> arguments) async {
Stopwatch stopwatch = Stopwatch()..start();
await printInts();
print(stopwatch.elapsed);
}
Future<void> printInts() async {
List<int> resultList = [
await getInt1(),
await getInt2(),
await getInt3(),
await getInt4(),
await getInt5(),
];
print(resultList);
}
Future<int> getInt1() async {
await Future.delayed(Duration(seconds: 1));
return 1;
}
Future<int> getInt2() async {
await Future.delayed(Duration(seconds: 1));
return 2;
}
Future<int> getInt3() async {
await Future.delayed(Duration(seconds: 1));
return 3;
}
Future<int> getInt4() async {
await Future.delayed(Duration(seconds: 1));
return 4;
}
Future<int> getInt5() async {
await Future.delayed(Duration(seconds: 1));
return 5;
}
void main(List<String> arguments) async {
Stopwatch stopwatch = Stopwatch()..start();
await printInts();
print(stopwatch.elapsed);
}
Future<void> printInts() async {
List<int> resultList = [
await getInt1(),
await getInt2(),
await getInt3(),
await getInt4(),
await getInt5(),
];
print(resultList);
}
Future<int> getInt1() async {
await Future.delayed(Duration(seconds: 1));
return 1;
}
Future<int> getInt2() async {
await Future.delayed(Duration(seconds: 1));
return 2;
}
Future<int> getInt3() async {
await Future.delayed(Duration(seconds: 1));
return 3;
}
Future<int> getInt4() async {
await Future.delayed(Duration(seconds: 1));
return 4;
}
Future<int> getInt5() async {
await Future.delayed(Duration(seconds: 1));
return 5;
}
void main(List<String> arguments) async {
Stopwatch stopwatch = Stopwatch()..start();
await printParallelInts();
print(stopwatch.elapsed);
}
Future<void> printParallelInts() async {
List<Future<int>> futureList = [
getInt1(),
getInt2(),
getInt3(),
getInt4(),
getInt5(),
];
List<int> resultList = await Future.wait(futureList);
print(resultList);
}
Future<int> getInt1() async {
await Future.delayed(Duration(seconds: 1));
return 1;
}
Future<int> getInt2() async {
await Future.delayed(Duration(seconds: 1));
return 2;
}
Future<int> getInt3() async {
await Future.delayed(Duration(seconds: 1));
return 3;
}
Future<int> getInt4() async {
await Future.delayed(Duration(seconds: 1));
return 4;
}
Future<int> getInt5() async {
await Future.delayed(Duration(seconds: 1));
return 5;
}
void main() async {
await for(int i in testStream(0))
print(i);
}
Stream<int> testStream(int i) async* {
yield i;
if (i < 10)
yield* testStream(i + 1);
}
void main() {
var stream = Stream.fromIterable([1, 2, 3]);
stream.listen((event) {
print(event);
});
}
import 'dart:async';
void main() {
final controller = StreamController();
final stream = controller.stream;
final streamListener1 = stream.listen((val) {
print('Listener 1 : $val');
});
// final streamListener2 = stream.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);
}
import 'dart:async';
void main() {
final controller = StreamController();
final stream = controller.stream.asBroadcastStream();
final streamListener1 = stream.listen((val) {
print('Listener 1 : $val');
});
final streamListener2 = stream.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);
}
import 'dart:async';
void main() {
final controller = StreamController();
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);
}
import 'dart:async';
void main() {
cal(1).listen((val) {
print('cal(1) : $val');
});
}
// Future<int> cal(int num) async{
// for (int i = 0; i < 5; i++) {
// return i * num;
// }
// }
Stream<int> cal(int num) async* {
for (int i = 0; i < 5; i++) {
yield i * num;
}
}
import 'dart:async';
void main() {
cal(2).listen((val) {
print('cal(2) : $val');
});
}
Stream<int> cal(int num) async* {
for (int i = 0; i < 5; i++) {
yield i * num;
await Future.delayed(Duration(seconds: 1));
}
}
import 'dart:async';
void main() {
cal(2).listen((val) {
print('cal(2) : $val');
});
cal(4).listen((val) {
print('cal(4) : $val');
});
}
Stream<int> cal(int num) async* {
for (int i = 0; i < 5; i++) {
yield i * num;
await Future.delayed(Duration(seconds: 1));
}
}
import 'dart:async';
void main() {
playAllStream().listen((val) {
print(val);
});
}
Stream<int> playAllStream() async* {
yield* cal(1);
yield* cal(1000);
}
Stream<int> cal(int num) async* {
for (int i = 0; i < 5; i++) {
yield i * num;
await Future.delayed(Duration(seconds: 1));
}
}