L'avenir n'est-il pas un modèle futur? Pourquoi la valeur est-elle déjà fixée au moment de la génération? N'est-ce pas juste?
J'ai essayé de le rendre asynchrone en utilisant DispatchQueue dans la fermeture, mais c'est gênant. Alors je l'ai fait.
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))
}
}
C'est
let future = Future<Int, Error>(on: DispatchQueue.global()) { promise in
sleep(1)
promise(.success(1))
}
Ce sera comme ça.
Recommended Posts