前提・実現したいこと
クロージャを使って同期的な処理を実装したいです。
例えば
Aの処理が終わったらB
Bが終わったらC
Cが終わったらD。。。
といったような形です。
ですが、どうしてもネストするような実装内容になってしまいます。
もし、手段がこれしかないのであれば仕方ないですが他に良い実装方法はありますでしょうか?
よろしくお願い致します。
ソースコード
Swift
1//MARK: - pribvate func 2extension ViewController { 3 4 private func start(completion: () -> Void) { 5 self.test(a: "1", b: "2") { [weak self] (aaa) in 6 self?.test1(b: aaa) { [weak self] (bbb) in 7 self?.end(sa: bbb, completion: { () in 8 }) 9 } 10 } 11 completion() 12 } 13 14 private func test(a: String, b: String, completion: @escaping(String) -> Void) { 15 let tes = a + b 16 completion(tes) 17 } 18 19 private func test1(b: String, completion: @escaping(String) -> Void) { 20 let ddd = b 21 completion(ddd) 22 } 23 24 private func end(sa: String, completion: @escaping() -> Void) { 25 completion() 26 } 27} 28
あなたの回答
tips
プレビュー