PromiseKit fournit une méthode pratique thenOn
pour l'exécution de pièces de votre chaîne sur des threads non principaux. Cependant, il ne semble pas y avoir de moyen pratique de définir le premier thread d'exécution de la promesse.Méthode PromiseKit firstlyOn
Cela signifie que je finis soit en plaçant un DispatchQueue.global(x).async
dans ma première promesse, soit en utilisant une première promesse fictive.
Si je place le bit DispatchQueue dans ma première promesse comme étant rompu, je déplace la décision de thread de la chaîne d'exécution principale vers la promesse individuelle, mais uniquement pour cette promesse. Si je devais plus tard faire une promesse à ma chaîne, je dois déplacer toute cette logique de filetage ... pas bon.
Ce que j'ai fait dernièrement est la suivante:
let queue = DispatchQueue.global(qos: .userInitiated)
Promise(value:()).then(on: queue) {
// Now run first promise function
}
Ceci est certainement une solution plus propre, mais je me demandais si quelqu'un connaissait une solution encore mieux ... Je suis sûr que ce ISN Est-ce un scénario rare après tout?