質問編集履歴

3

コメントアウトを追加

2020/11/26 15:44

投稿

tarakorakko
tarakorakko

スコア13

test CHANGED
File without changes
test CHANGED
@@ -36,19 +36,23 @@
36
36
 
37
37
 
38
38
 
39
- [ソースコードを実行する](https://jsfiddle.net/6avgo9f2/)
39
+ [ソースコードを実行する](https://jsfiddle.net/qbpvu7zk/)
40
-
40
+
41
- ```js
41
+ ```js
42
+
43
+ // func1, func2 を並列処理しつつ、結果は順次処理していく
42
44
 
43
45
  $(function() {
44
46
 
45
47
 
46
48
 
49
+ // 結果は順次処理
50
+
47
51
  const wrap = async function(func) {
48
52
 
49
53
  const res = await func();
50
54
 
51
- console.log( res );
55
+ console.log(res);
52
56
 
53
57
  return res;
54
58
 
@@ -56,7 +60,9 @@
56
60
 
57
61
 
58
62
 
63
+ // func1, func2 を並列処理
64
+
59
- console.log("start");
65
+ console.log("並列処理開始");
60
66
 
61
67
  Promise.all([
62
68
 
@@ -64,9 +70,17 @@
64
70
 
65
71
  wrap( func2 )
66
72
 
73
+ ]).then(res=>{
74
+
75
+ console.log(res);
76
+
67
- ]).then(res=>{console.log(res);console.log("end")});
77
+ console.log("並列処理すべて終了");
78
+
68
-
79
+ });
80
+
81
+
82
+
69
-
83
+ // AJAXでデータを取得
70
84
 
71
85
  function func1(str=''){
72
86
 
@@ -76,7 +90,9 @@
76
90
 
77
91
  setTimeout(function(){
78
92
 
93
+ const ajaxResponse1 = [{name:str+'太郎'},{nane:str+'次郎'}];
94
+
79
- def.resolve('response func1 ' + str);
95
+ def.resolve( ajaxResponse1 );
80
96
 
81
97
  },1000);
82
98
 
@@ -86,6 +102,8 @@
86
102
 
87
103
 
88
104
 
105
+ // AJAXでデータを取得
106
+
89
107
  function func2(){
90
108
 
91
109
  var def = new $.Deferred();
@@ -94,7 +112,9 @@
94
112
 
95
113
  setTimeout(function(){
96
114
 
115
+ const ajaxResponse2 = [{name:'花子'},{nane:'良子'}];
116
+
97
- def.resolve('response func2');
117
+ def.resolve( ajaxResponse2 );
98
118
 
99
119
  },2000);
100
120
 
@@ -144,11 +164,13 @@
144
164
 
145
165
 
146
166
 
167
+ // 結果は順次処理
168
+
147
169
  const wrap = async function(func) {
148
170
 
149
171
  const res = await eval(func); // evalで文字列を関数として処理する
150
172
 
151
- console.log( res );
173
+ console.log(res);
152
174
 
153
175
  return res;
154
176
 
@@ -156,7 +178,9 @@
156
178
 
157
179
 
158
180
 
181
+ // func1, func2 を並列処理
182
+
159
- console.log("start");
183
+ console.log("並列処理開始");
160
184
 
161
185
  Promise.all([
162
186
 
@@ -164,7 +188,13 @@
164
188
 
165
189
  wrap( "func2()" ) // 同じく文字列で渡す
166
190
 
191
+ ]).then(res=>{
192
+
193
+ console.log(res);
194
+
167
- ]).then(res=>{console.log(res);console.log("end")});
195
+ console.log("並列処理すべて終了");
196
+
197
+ });
168
198
 
169
199
 
170
200
 

2

誤字

2020/11/26 15:43

投稿

tarakorakko
tarakorakko

スコア13

test CHANGED
File without changes
test CHANGED
@@ -176,8 +176,8 @@
176
176
 
177
177
  ###質問
178
178
 
179
- これによって実現できたように思えるのですが、`exal`は避けるべきとの記事を方々で目にします。
179
+ これによって実現できたように思えるのですが、`eval`は避けるべきとの記事を方々で目にします。
180
180
 
181
181
 
182
182
 
183
- そこで`eval`を使うことなく引数'apple'を渡す方法を知りたいのですが、そのようなことは可能でしょうか?
183
+ そこで`eval`を使うことなく引数`'apple'`を渡す方法を知りたいのですが、そのようなことは可能でしょうか?

1

,を+に修正

2020/11/26 14:52

投稿

tarakorakko
tarakorakko

スコア13

test CHANGED
File without changes
test CHANGED
@@ -36,7 +36,7 @@
36
36
 
37
37
 
38
38
 
39
- [ソースコードを実行する](https://jsfiddle.net/hfct2sp7/)
39
+ [ソースコードを実行する](https://jsfiddle.net/6avgo9f2/)
40
40
 
41
41
  ```js
42
42
 
@@ -76,7 +76,7 @@
76
76
 
77
77
  setTimeout(function(){
78
78
 
79
- def.resolve('response func1 ', str);
79
+ def.resolve('response func1 ' + str);
80
80
 
81
81
  },1000);
82
82