質問編集履歴
4
修正しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -20,7 +20,11 @@
|
|
20
20
|
|
21
21
|
async.eachSeries(arr, function(s, callback) {
|
22
22
|
|
23
|
+
console.log(x[i]);
|
24
|
+
|
23
|
-
|
25
|
+
i++;
|
26
|
+
|
27
|
+
}
|
24
28
|
|
25
29
|
}
|
26
30
|
|
3
修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,23 +1,31 @@
|
|
1
1
|
exportsをして受け取った関数内で同期処理を書いているのですが、以下のような実装の場合変数が途中で変わる事があるおそれがあります。この場合どういった実装に変えればいいのでしょうか?
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
追記:
|
2
6
|
|
3
7
|
```ここに言語を入力
|
4
8
|
|
5
9
|
|
6
10
|
|
7
|
-
exports.Func=function(x){
|
8
|
-
|
9
|
-
var y=
|
11
|
+
var async = require('async');
|
10
12
|
|
11
13
|
|
12
14
|
|
13
|
-
|
15
|
+
exports.Func=function(x){//x は['A', 'B', 'C', 'D', 'E', 'F']等の中身がランダムな配列
|
14
16
|
|
15
|
-
async.timesSeries(y.length, function(i, callback){
|
16
17
|
|
17
|
-
}
|
18
18
|
|
19
|
+
var i = 0;
|
20
|
+
|
19
|
-
|
21
|
+
async.eachSeries(arr, function(s, callback) {
|
22
|
+
|
23
|
+
i++;
|
20
24
|
|
21
25
|
}
|
22
26
|
|
23
27
|
```
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
上記の変数のiは同時アクセスが有った場合上書きされてしまいますが、それでも大丈夫なのでしょうか?
|
2
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,9 +12,11 @@
|
|
12
12
|
|
13
13
|
----同期処理----
|
14
14
|
|
15
|
-
|
15
|
+
async.timesSeries(y.length, function(i, callback){
|
16
16
|
|
17
|
+
}
|
18
|
+
|
17
|
-
---------------//ここの同期処理内で、外のスコープのyが他の命令によって書き換えられる恐れがある。
|
19
|
+
---------------//ここの同期処理内で、外のスコープのyが他の命令によって書き換えられる恐れがある。
|
18
20
|
|
19
21
|
}
|
20
22
|
|
1
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,15 +6,15 @@
|
|
6
6
|
|
7
7
|
exports.Func=function(x){
|
8
8
|
|
9
|
-
var y=x['y'];
|
9
|
+
var y=x['y'];//Object型もしくはArray等の値を受け取り
|
10
10
|
|
11
11
|
|
12
12
|
|
13
13
|
----同期処理----
|
14
14
|
|
15
|
-
...
|
15
|
+
for(var i=0;i<y.length;i++){}....
|
16
16
|
|
17
|
-
---------------
|
17
|
+
---------------//ここの同期処理内で、外のスコープのyが他の命令によって書き換えられる恐れがある。この同期処理
|
18
18
|
|
19
19
|
}
|
20
20
|
|