Ich habe eine Methode, die eingerichtet werden summiert kann wie folgt aussehen:Rückgabe nach dem Aufruf des Beendigungshandlers oder Rückgabe des Beendigungshandlerparameters?
func apply(username: String, email: String, password: String,
onDone: @escaping (_ error: Error?) ->())
{
//Do async stuff
do
{
try asyncGood()
onDone(nil)
return
}
catch
{
onDone(error)
return
}
}
Was ist der Unterschied zwischen tun:
return onDone(error)
gegen
onDone(error)
return
?
Speichert es nur eine zusätzliche Codezeile? Ich sehe keinen Unterschied zwischen den beiden. Fehle mir ein grundlegender Aspekt der asynchronen Swift-Programmierung?
Sollte ich Ihrer Meinung nach immer versuchen, alles so zusammenzufassen, dass onDone (...) am Ende nur einmal heißt?
Viele Leute sagen, Return-Statements sind überhaupt nicht notwendig, und ich bekomme das. Aber wenn es mehrere Codepfade gibt, die 'onDone (...)' aufrufen, habe ich festgestellt, dass es mehrere Male aufgerufen wird, wodurch der nachfolgende Code mehrere Male aufgerufen wird. Deshalb beende ich meine 'onDone (...)' 's immer mit Return-Statements aus Gewohnheit. –