2025-09-30
Future
- νλμ μμ μ λν΄ κ°μ΄λ μ΄λ²€νΈκ° ν λ² λ°μνλ λ¨μΌ λΉλκΈ° μμ μ μ¬μ©.
- μμ λΉ κ²°κ³Όκ°μ ν λ²λ§ λ°μ μ μλ€.
Futureμ λ°ν
Future<String> introduce(String name) async {
print('$nameμ μκΈ°μκ° μμ !');
await Future.delayed(Duration(seconds: 2), () {
print('μλ
? λλ $name ~');
});
print('$nameμ μκΈ°μκ° λ !');
return 'μ΄λ¦μ $name ~';
}
void main() async {
var riverfuture = await introduce('κ°λ―Έλ');
var riverpresent = await introduce('κ°νμ¬');
print('λμ $riverfuture λμ $riverpresent');
}
- νλμ μμ μ κ²°κ³Όκ°μ΄ μ¬λ¬ λ² λμ€λ κ²½μ°λ μ΄λ»κ² ν κΉ?
- Streamμ μ¬μ©νμ¬ κ²°κ³Όκ°μ λ°λλ€.
Stream
- νλμ μμ μ λν΄ κ°μ΄λ μ΄λ²€νΈκ° μ¬λ¬ λ² λ°μνλ κ²½μ°μ μ¬μ©
- λΉλκΈ° μ°μ°μ κ²°κ³Όκ°μ΄ μ¬λ¬ λ² λ°νλλ κ²½μ° κ·Έ κ°μ μμ°¨μ μΌλ‘ λ°κΈ° μν΄ μ¬μ©
- κ²°κ³Όκ°μ ν λ² λ°ννκ³ λλ©΄ μ€νμ΄ μ’ λ£λλ Future μ λ€λ₯΄κ² μ§μ μ€νμ μ’ λ£ν΄ μ£Όμ΄μΌ μ€νμ΄ μ’ λ£λκ³ , μ€νμ μ’ λ£ν΄ μ£Όμ§ μμΌλ©΄ κ³μ μ€νλλ€.
- κ²°κ³Όκ°μ νμ
μ
Stream
Steam<int> number = Steam.value(1);
Steam<String> name = Steam.value('κ°λ―Έλ');
Steam<bool> isOddNumber = Steam.value(1.isOdd);
Steam<bool>μboolμ΄λ κ°μλ° λ¨μ§ Steam μ΄ κ°μΈκ³ μμ λΏμ΄λΌκ³ μκ°νλ©΄ λλ€.- μλμ μμ λ₯Ό ν΅ν΄ μμΈν μμ보μ.
Stream<String> emitNames() async* {
yield 'κ°λ―Έλ';
yield 'κ°νμ¬';
yield 'κ°κ³Όκ±°';
}
yieldλ κ°μ λ°©μΆνλλ‘ νλ ν€μλ- Future λ₯Ό λ°ν νμ
μΌλ‘ κ°λ ν¨μλ
asyncλ₯Ό μ¬μ©νλλ°, Stream μ λ°ν νμ μΌλ‘ κ°λ ν¨μλasync*μ μ¬μ©νλ€.
Stream<String> emitNames() async* {
yield 'κ°λ―Έλ';
yield 'κ°νμ¬';
yield 'κ°κ³Όκ±°';
}
void main() {
int number = 1;
emitNames().listen((name) {
print('$numberλ²μ§Έλ $name ~');
number += 1;
});
}
listen()μ μ§μμ μΌλ‘ κ°μ λ°μ μ μλ€.- μ¬κΈ°μλ
yieldλ₯Ό ν΅ν΄ λ°©μΆλλ κ°μ λ°κΈ° μν΄ μ¬μ©