質問編集履歴

4

削除

2021/07/07 12:51

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
File without changes

3

削除

2021/07/07 12:51

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,3 @@
1
1
  回答ありがとうございました。
2
2
 
3
- 参考にさせていただきますが、問題のある個所がありましたので、削除します
3
+ 問題のある個所がありましたので、内容を削除させていただきま

2

削除

2021/07/07 12:49

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,143 +1,3 @@
1
- ### 前提・実現したいこと
1
+ 回答ありがとうございました
2
2
 
3
- 下記ソースですが、fetchUser{}でAPIにて取得(GET)したユーザー情報を、updateUser{}のPOST処理で使用しています。userList[]にuser_idが複数格納されており、userの数だけループさせています。(一括処理はないです)
4
-
5
- やりたいことは、for文のfetchUserとupdateUserの処理が全て完了してから、init()やopenToast()の処理を実行したい、です。
6
-
7
- 現状は思った動きにならず、initが効かなかったり、openToast(完了メッセージの表示)が即時実行されてしまいます。
8
-
9
- ### 該当のソースコード
10
-
11
-
12
-
13
- ```Vue
14
-
15
- // getter
16
-
17
- user: 'user'
18
-
19
- // data
20
-
21
- userList: []
22
-
23
-
24
-
25
- // method
26
-
27
- async updateMasterUsers() {
28
-
29
- // メッセージボックスをクローズする処理
30
-
31
- await this.$closeToast()
32
-
33
- // GETした値をbodyに入れて、POSTする
34
-
35
- for (let i = 0; i < this.userList[i].length; i++) {
36
-
37
- (async() => {
38
-
39
- const body = await this.fetchUser(this.userList[i].user_id, i)
40
-
41
- this.updateUser(body)
42
-
43
- }();// ←「)」抜けてますが、何故か表示がおかしくなるのでこのまま
44
-
45
- }
46
-
47
- // ↑for文全て完了したら↓処理にいきたい
3
+ 参考にさせていただきますが、問題ある個所ありましたので、削除します
48
-
49
- // 画面の初期化処理
50
-
51
- await this.init()
52
-
53
- // 全ての更新作業が完了したら、メッセージを表示
54
-
55
- await this.$openToast({
56
-
57
- title: '更新完了',
58
-
59
- desc: '',
60
-
61
- variant: 'info'
62
-
63
- })
64
-
65
- return
66
-
67
- },
68
-
69
-
70
-
71
- async fetchUser(user_id, index) {
72
-
73
- try{
74
-
75
- // user変数に取得したユーザー情報が格納される
76
-
77
- const res = await this.$store.dispatch('fetchUser'), {
78
-
79
- user_id: user_id
80
-
81
- }
82
-
83
- } catch (e) {
84
-
85
- return
86
-
87
- }
88
-
89
- const body = {
90
-
91
- user_id: user_id,
92
-
93
- user_name: this.user.user_name,
94
-
95
- sex: this.user.sex,
96
-
97
- age: this.user.age,
98
-
99
- status: this.user.status
100
-
101
- }
102
-
103
- return body
104
-
105
- },
106
-
107
-
108
-
109
- async updateUser(body) {
110
-
111
- try {
112
-
113
- const res = await this.$store.dispatch('updateUser', {
114
-
115
- user_id: body.user_id,
116
-
117
- body: body
118
-
119
- })
120
-
121
- } catch (e) {
122
-
123
- return
124
-
125
- }
126
-
127
- return
128
-
129
- }
130
-
131
-
132
-
133
- ```
134
-
135
-
136
-
137
- ### 条件
138
-
139
- for await...ofは使用しないほうがよいとTipsで見かけたため、使用せずに実施したい。
140
-
141
- ### 補足情報(FW/ツールのバージョンなど)
142
-
143
- ES6以上

1

説明の編集

2021/07/07 12:45

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- 下記ソースですが、fetchUser{}でAPIにて取得(GET)したユーザー情報を、updateUser{}のPOST処理で使用しているため、ループさせています。(一括処理はないです)
3
+ 下記ソースですが、fetchUser{}でAPIにて取得(GET)したユーザー情報を、updateUser{}のPOST処理で使用しています。userList[]にuser_idが複数格納されておりuserの数だけループさせています。(一括処理はないです)
4
4
 
5
5
  やりたいことは、for文のfetchUserとupdateUserの処理が全て完了してから、init()やopenToast()の処理を実行したい、です。
6
6