回答編集履歴
1
誤字の修正
answer
CHANGED
@@ -72,12 +72,12 @@
|
|
72
72
|
|
73
73
|
// 非同期処理(1)
|
74
74
|
func doAsyncProcOne(completion: @escaping () -> ()) {
|
75
|
-
print("非同期処理
|
75
|
+
print("非同期処理(1)に入りました")
|
76
76
|
|
77
77
|
// DB への処理を模擬的に行う
|
78
78
|
let delay = Double.random(in: 0.5...1.0)
|
79
79
|
DispatchQueue.main.asyncAfter(deadline: .now() + delay) {
|
80
|
-
print("非同期処理
|
80
|
+
print("非同期処理(1)が完了しました。")
|
81
81
|
|
82
82
|
// 文字列を追加する
|
83
83
|
// クラス内でのクロージャ処理の場合には、先頭に self. が必要なので注意
|
@@ -91,12 +91,12 @@
|
|
91
91
|
// 非同期処理(2)
|
92
92
|
// 基本形は doAsyncProcOne と同じ。
|
93
93
|
func doAsyncProcTwo(completion: @escaping () -> ()) {
|
94
|
-
print("非同期処理
|
94
|
+
print("非同期処理(2)に入りました")
|
95
95
|
|
96
96
|
// DB への処理を模擬的に行う
|
97
97
|
let delay = Double.random(in: 0.5...1.0)
|
98
98
|
DispatchQueue.main.asyncAfter(deadline: .now() + delay) {
|
99
|
-
print("非同期処理
|
99
|
+
print("非同期処理(2)が完了しました。")
|
100
100
|
|
101
101
|
// 文字列を追加する
|
102
102
|
// クラス内でのクロージャ処理の場合には、先頭に self. が必要なので注意
|
@@ -128,15 +128,15 @@
|
|
128
128
|
|
129
129
|
その一つ目の処理が終了した時点で、`completion:` として渡された処理が行われます。
|
130
130
|
|
131
|
-
その中では、次の
|
131
|
+
その中では、次の非同期処理を渡しています。そこでも`completion:` に非同期処理終了後の処理を記述していますので、結果として全ての処理が逐次的に行われるようになっています。
|
132
132
|
|
133
133
|
結果として、次のような表示が出るようになっています。
|
134
134
|
|
135
135
|
```
|
136
|
-
非同期処理
|
136
|
+
非同期処理(1)に入りました
|
137
|
-
非同期処理
|
137
|
+
非同期処理(1)が完了しました。
|
138
|
-
非同期処理
|
138
|
+
非同期処理(2)に入りました
|
139
|
-
非同期処理
|
139
|
+
非同期処理(2)が完了しました。
|
140
140
|
---終了処理---
|
141
141
|
[0] 001
|
142
142
|
[1] 002
|