Future
μ λ€λ¦ ν΄λμ€ | κ²°κ΅μλ νλμ κ°μ λΈ ν μ’ λ£νκ±°λ μ€ν¨νλ Publisher
μ΄λμ λΌμ΄μ λ ν κ°μ μΈμλ₯Ό λ°λλ€.
attemptToFulfill: Publisherκ° μμλ₯Ό λ°°μΆνκ±°λ μλ¬λ‘ μ’ λ£ν λ Publisherκ° νΈμΆνλFuture.Promise
Futureλ Future.PromiseλΌλ νμ
λ³μΉμΌλ‘ ν΄λ‘μ λ₯Ό μ 곡νλ€. μ΄ ν΄λ‘μ λ Result νμ
μ μΈμλ₯Ό νλ λ°κ³ λ°νκ°μ΄ μλ ννλ€.
μ΄ ν΄λ‘μ λ₯Ό μ¬μ©νμ¬ Futureμ μ΄λμ
λΌμ΄μ λ‘ λμ΄κ°λ ν΄λ‘μ μμ μ΄λ ν μμ
μ μννκ³ μ±κ³΅νμ λμ κ°μ΄λ μ€ν¨νμ λμ μλ¬λ₯Ό Future.Promise ν΄λ‘μ λ‘ μ λ¬νλ€.
κ²°κ΅ Futureλ μ΄λ ν μμ μ μνν ν νλμ κ°μ λΈ ν μ’ λ£νκ±°λ μ€ν¨νλ€.
Future<Void, Error> { promise in
// 1
promise(.success(Void()))
// 2
promise(.failure(error))
}
.sink(receiveCompletion: { completion in
switch completion {
case .failure:
print("Combine Future Error")
case .finished:
print("Combine Future Finish")
}
}, receiveValue: {
print("Combine Future")
})
.store(in: &cancellables)
// Combine Future
// Combine Future FinishFutureλ νλμ κ°μ λΈ ν μ’ λ£νκ±°λ μ€ν¨νλ€.
1μ μ½λκ° μ€νλλ©΄ κ°μ λ΄λ―λ‘ Publisherλ μ’ λ£νλ€. κ·Έλ κΈ° λλ¬Έμ 2μ μ½λλ ν¨λ ₯μ΄ μκ² λλ€.
λ§μ°¬κ°μ§λ‘ 1μ μ½λλ₯Ό μ€ννλ©΄ μλ¬λ₯Ό λ΄λ―λ‘ Publisherλ μλ¬λ₯Ό λΈλ€.
κ·Έλ κΈ° λλ¬Έμ 2μ μ½λλ ν¨λ ₯μ΄ μκ² λλ€.
RxSwift
Singleμ μ¬μ©νμ¬ κ΅¬νν μ μλ€.
ReactiveSwift
ν΄λΉ λμμ ꡬννκΈ° μν μ€νΌλ μ΄ν°λ₯Ό μ 곡νμ§ μλλ€.
μ°Έκ³
Last updated
Was this helpful?