質問編集履歴

1

コードの間違い

2021/03/31 11:00

投稿

hiroki88
hiroki88

スコア66

test CHANGED
File without changes
test CHANGED
@@ -204,6 +204,58 @@
204
204
 
205
205
  1つ目:2番と3番の処理を1つにまとめる
206
206
 
207
+ 結果:2番と3番が同期処理されてしまう。
208
+
209
+ ```javascript
210
+
211
+ async fetchProduct(){
212
+
213
+ this.loading = true;//1.ローディング表示
214
+
215
+ const exec = async ()=>{
216
+
217
+ await this.execRegister();//2.登録商品取得処理呼び出し
218
+
219
+ await this.execBuy();//3.購入商品取得処理呼び出し
220
+
221
+ }
222
+
223
+ await exec();
224
+
225
+ this.loading = false;//4.ローディング非表示
226
+
227
+ }
228
+
229
+ ```
230
+
231
+ 2つ目:2番と3番の処理のawaitを指定しない
232
+
233
+ 結果:2番と3番の処理は並行(非同期)で行われるが終わる前に4番の処理が行われる。
234
+
235
+ ```javascript
236
+
237
+ async fetchProduct(){
238
+
239
+ this.loading = true;//1.ローディング表示
240
+
241
+ const exec = async ()=>{
242
+
243
+ this.execRegister();//2.登録商品取得処理呼び出し
244
+
245
+ this.execBuy();//3.購入商品取得処理呼び出し
246
+
247
+ }
248
+
249
+ await exec();
250
+
251
+ this.loading = false;//4.ローディング非表示
252
+
253
+ }
254
+
255
+ ```
256
+
257
+ 3つ目:4番の処理にasyncを指定する
258
+
207
259
  結果:2番と3番の処理が終わる前に4番の処理が行われる。
208
260
 
209
261
  ```javascript
@@ -220,66 +272,14 @@
220
272
 
221
273
  }
222
274
 
275
+ const exec2 = async ()=>{
276
+
277
+ this.loading = false;//4.ローディング非表示
278
+
279
+ }
280
+
223
281
  await exec();
224
282
 
225
- this.loading = false;//4.ローディング非表示
226
-
227
- }
228
-
229
- ```
230
-
231
- 2つ目:2番と3番の処理のawaitを指定しない
232
-
233
- 結果:2番と3番の処理は並行(非同期)で行われるが終わる前に4番の処理が行われる。
234
-
235
- ```javascript
236
-
237
- async fetchProduct(){
238
-
239
- this.loading = true;//1.ローディング表示
240
-
241
- const exec = async ()=>{
242
-
243
- this.execRegister();//2.登録商品取得処理呼び出し
244
-
245
- this.execBuy();//3.購入商品取得処理呼び出し
246
-
247
- }
248
-
249
- await exec();
250
-
251
- this.loading = false;//4.ローディング非表示
252
-
253
- }
254
-
255
- ```
256
-
257
- 3つ目:4番の処理にasyncを指定する
258
-
259
- 結果:2番と3番の処理が終わる前に4番の処理が行われる。
260
-
261
- ```javascript
262
-
263
- async fetchProduct(){
264
-
265
- this.loading = true;//1.ローディング表示
266
-
267
- const exec = async ()=>{
268
-
269
- await this.execRegister();//2.登録商品取得処理呼び出し
270
-
271
- await this.execBuy();//3.購入商品取得処理呼び出し
272
-
273
- }
274
-
275
- const exec2 = async ()=>{
276
-
277
- this.loading = false;//4.ローディング非表示
278
-
279
- }
280
-
281
- await exec();
282
-
283
283
  await exec2();
284
284
 
285
285
  }