質問編集履歴

5

追記のまとめ

2021/08/21 12:21

投稿

watter
watter

スコア15

test CHANGED
File without changes
test CHANGED
@@ -94,6 +94,14 @@
94
94
 
95
95
 
96
96
 
97
+ 追記が多くなってしまったので少しまとめます。
98
+
99
+ ・returnを使う方法 → ➀内でさらに関数を(メソッドの引数などで)呼び出し、その関数内でres.json()を実行するときに➀を抜けられない。入れ子にしないなら使える。
100
+
101
+
102
+
103
+ この他に何かよい方法をご存知でしたらぜひお教えください
104
+
97
105
 
98
106
 
99
107
  ###追記

4

追記3

2021/08/21 12:21

投稿

watter
watter

スコア15

test CHANGED
File without changes
test CHANGED
@@ -209,3 +209,47 @@
209
209
  ```
210
210
 
211
211
  このコードではⅢもしくはⅣが実行された後にⅤが実行されエラーになると思います。
212
+
213
+
214
+
215
+ #追記3
216
+
217
+ ```javascript
218
+
219
+ router.post('/', (req, res) => { ・・・Ⅰ
220
+
221
+ --省略--
222
+
223
+ AAAA()
224
+
225
+ .then((flag) => { ・・・Ⅱ
226
+
227
+ if(flag) {
228
+
229
+ return res.json('data1': data1) ・・・Ⅲ
230
+
231
+ } else {
232
+
233
+ return res.json('data2': data2) ・・・Ⅳ
234
+
235
+ }
236
+
237
+ --省略--
238
+
239
+ })
240
+
241
+ .then((DATA) => { //res.json()の戻り値
242
+
243
+ --省略--
244
+
245
+ return res.json('data3': data3) ・・・Ⅴ
246
+
247
+ })
248
+
249
+ })
250
+
251
+ ```
252
+
253
+ この処理をreturnが使えない例として挙げたのはよくなかったかもしれません…
254
+
255
+ res.json()の実行後にⅠを抜ける共通処理的なものはあるのでしょうか。

3

DATAの追記

2021/08/21 12:14

投稿

watter
watter

スコア15

test CHANGED
File without changes
test CHANGED
@@ -144,7 +144,7 @@
144
144
 
145
145
  })
146
146
 
147
- .then((DATA) => { //DATAは使用しない
147
+ .then((DATA) => { //res.json()の戻り値
148
148
 
149
149
  --省略--
150
150
 
@@ -196,7 +196,7 @@
196
196
 
197
197
  })
198
198
 
199
- .then((DATA) => { //DATAは使用しない
199
+ .then((DATA) => { //res.json()の戻り値
200
200
 
201
201
  --省略--
202
202
 

2

returnの実装について追記

2021/08/21 12:07

投稿

watter
watter

スコア15

test CHANGED
File without changes
test CHANGED
@@ -163,3 +163,49 @@
163
163
  ⅢもしくはⅣが実行されるのはⅡの関数内であり、このreturnではres.jsonの戻り値がDATAとして次の関数に渡されるだけでⅠを抜けられないことからreturn以外の方法があればと思い質問しました。
164
164
 
165
165
  説明が不足しており、大変申し訳ありませんでした。
166
+
167
+
168
+
169
+ ###追記2
170
+
171
+ 確かに上記のコードではⅤが先に実行されますね。
172
+
173
+ コードを修正します。
174
+
175
+ ```javascript
176
+
177
+ router.post('/', (req, res) => { ・・・Ⅰ
178
+
179
+ --省略--
180
+
181
+ AAAA()
182
+
183
+ .then((flag) => { ・・・Ⅱ
184
+
185
+ if(flag) {
186
+
187
+ return res.json('data1': data1) ・・・Ⅲ
188
+
189
+ } else {
190
+
191
+ return res.json('data2': data2) ・・・Ⅳ
192
+
193
+ }
194
+
195
+ --省略--
196
+
197
+ })
198
+
199
+ .then((DATA) => { //DATAは使用しない
200
+
201
+ --省略--
202
+
203
+ return res.json('data3': data3) ・・・Ⅴ
204
+
205
+ })
206
+
207
+ })
208
+
209
+ ```
210
+
211
+ このコードではⅢもしくはⅣが実行された後にⅤが実行されエラーになると思います。

1

returnの実装について

2021/08/21 11:59

投稿

watter
watter

スコア15

test CHANGED
File without changes
test CHANGED
@@ -91,3 +91,75 @@
91
91
  ```
92
92
 
93
93
  のように「➀を終了させる処理」は存在するのでしょうか。
94
+
95
+
96
+
97
+
98
+
99
+ ###追記
100
+
101
+ 実際には
102
+
103
+ ```javascript
104
+
105
+ router.post('/', (req, res) => {
106
+
107
+ --省略--
108
+
109
+ if (flag) {
110
+
111
+ return res.json('data1': data1)
112
+
113
+ } else {
114
+
115
+ return res.json('data2': data2)
116
+
117
+ }
118
+
119
+ })
120
+
121
+ ```
122
+
123
+ のように実装していたのですが、
124
+
125
+ ```javascript
126
+
127
+ router.post('/', (req, res) => { ・・・Ⅰ
128
+
129
+ --省略--
130
+
131
+ AAAA()
132
+
133
+ .then((flag) => { ・・・Ⅱ
134
+
135
+ if(flag) {
136
+
137
+ return res.json('data1': data1) ・・・Ⅲ
138
+
139
+ } else {
140
+
141
+ return res.json('data2': data2) ・・・Ⅳ
142
+
143
+ }
144
+
145
+ })
146
+
147
+ .then((DATA) => { //DATAは使用しない
148
+
149
+ --省略--
150
+
151
+ })
152
+
153
+
154
+
155
+ return res.json('data3': data3) ・・・Ⅴ
156
+
157
+ })
158
+
159
+ ```
160
+
161
+ のようなコードを考えた時、
162
+
163
+ ⅢもしくはⅣが実行されるのはⅡの関数内であり、このreturnではres.jsonの戻り値がDATAとして次の関数に渡されるだけでⅠを抜けられないことからreturn以外の方法があればと思い質問しました。
164
+
165
+ 説明が不足しており、大変申し訳ありませんでした。