Merhaba,
Her bir func için completionHandler tanımlarsınız. Mesela func1 için completinHandler tanımlayıp diğerine geçersiniz sırasıyla:
func func1(_ completionHandler : @escaping ((_ isResponse : Bool) -> Void)) {
//Burada func1 içinde, if else ile istediğin işlemler başarıyla biterse completionHandler için true ayarı yaparsın
completionHandler(true)
//Burada func1 içinde istediğin işlemler başarıyla bitmezse bir hata olursa completionHandler için false ayarı yaparsın
completionHandler(false)
}
//sonra uygulamandaki bölümde ise
func1 { (isResponse) in
//Burada isResponse true döndüyse func2 çalıştırılacak
//func2()
//sonra yine func2 için de yukarıdaki gibi completionHandler tanımlayıp sırayla gidersiniz..
}