Ist Zukunft nicht ein Zukunftsmuster? Warum ist der Wert zum Zeitpunkt der Generierung bereits festgelegt? Ist das nicht einfach?
Ich habe versucht, es mit DispatchQueue im Closure asynchron zu machen, aber es ist problematisch. Also habe ich es geschafft.
import Combine
extension Future {
convenience init<S: Scheduler>(on scheduler: S, _ attemptToFulfill: @escaping (@escaping Promise) -> Void) {
self.init { promise in
scheduler.schedule {
attemptToFulfill(promise)
}
}
}
}
let future = Future<Int, Error> { promise in
DispatchQueue.global().async {
sleep(1)
promise(.success(1))
}
}
Das ist
let future = Future<Int, Error>(on: DispatchQueue.global()) { promise in
sleep(1)
promise(.success(1))
}
Es wird so sein.
Recommended Posts