So führen Sie eine Reihe von Dispatch-Codes nacheinander aus. Zum Beispiel:Dispatch-Haupt in Sequenz ausführen
Dispatch.main.async{
//call API, it may takes 5-10 seconds..
//do something..
print("done 1")
}
Dispatch.main.async{
//call API, it may takes 5-10 seconds..
//do something
print("done 2")
}
Dispatch.main.asyncAfter{
print("completed")
}
Output:
completed
done1
done2
Expected output:
done1
done2
completed
ich die Haupt verwenden, weil ‚etwas tun‘ ist die resut zu UI füllen. Ich habe versucht, global() verwendet, aber die 'abgeschlossen' immer zuerst ausgeführt und nicht geeignet, Versand Zeitverzögerung zu verwenden, da nicht bestätigen kann, wie lange die API-Aufrufzeiten. benötigen einen Vorschlag in swift ~
Warum nicht Sie Abschluss-Handler verwenden? Probieren Sie es aus, viele SO-Posts sind verfügbar. –
Da die Hauptwarteschlange eine serielle Dispatch-Warteschlange ist, können Sie 'Dispatch.main.async()' auch für Ihren dritten Block verwenden, oder Sie können eine Dispatch-Gruppe verwenden – Paulw11