質問編集履歴

4 修正しました

seri

seri score 396

2017/06/27 12:09  投稿

NOde.jsで同期処理
exportsをして受け取った関数内で同期処理を書いているのですが、以下のような実装の場合変数が途中で変わる事があるおそれがあります。この場合どういった実装に変えればいいのでしょうか?
追記:
```ここに言語を入力
var async = require('async');
exports.Func=function(x){//x は['A', 'B', 'C', 'D', 'E', 'F']等の中身がランダムな配列
var i = 0;
async.eachSeries(arr, function(s, callback) {
   i++;
   console.log(x[i]);
  i++;
}
}
```
上記の変数のiは同時アクセスが有った場合上書きされてしまいますが、それでも大丈夫なのでしょうか?
  • Node.js

    4219 questions

    Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

3 修正しました。

seri

seri score 396

2017/06/27 12:08  投稿

NOde.jsで同期処理
exportsをして受け取った関数内で同期処理を書いているのですが、以下のような実装の場合変数が途中で変わる事があるおそれがあります。この場合どういった実装に変えればいいのでしょうか?
 
追記:  
```ここに言語を入力
exports.Func=function(x){
var y=x['y'];//Object型もしくはArray等の値を受け取り
var async = require('async');
----同期処理----
async.timesSeries(y.length, function(i, callback){
exports.Func=function(x){//x は['A', 'B', 'C', 'D', 'E', 'F']等の中身がランダムな配列
var i = 0;
async.eachSeries(arr, function(s, callback) {
   i++;
}
---------------//ここの同期処理内で、外のスコープのyが他の命令によって書き換えられる恐れがある。
}
```
```
上記の変数のiは同時アクセスが有った場合上書きされてしまいますが、それでも大丈夫なのでしょうか?
  • Node.js

    4219 questions

    Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

2 修正

seri

seri score 396

2017/06/27 06:54  投稿

NOde.jsで同期処理
exportsをして受け取った関数内で同期処理を書いているのですが、以下のような実装の場合変数が途中で変わる事があるおそれがあります。この場合どういった実装に変えればいいのでしょうか?
```ここに言語を入力
exports.Func=function(x){
var y=x['y'];//Object型もしくはArray等の値を受け取り
----同期処理----
for(var i=0;i<y.length;i++){}....
---------------//ここの同期処理内で、外のスコープのyが他の命令によって書き換えられる恐れがある。この同期処理
async.timesSeries(y.length, function(i, callback){
}
---------------//ここの同期処理内で、外のスコープのyが他の命令によって書き換えられる恐れがある。
}
```
  • Node.js

    4219 questions

    Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

1 修正

seri

seri score 396

2017/06/27 06:51  投稿

NOde.jsで同期処理
exportsをして受け取った関数内で同期処理を書いているのですが、以下のような実装の場合変数が途中で変わる事があるおそれがあります。この場合どういった実装に変えればいいのでしょうか?
```ここに言語を入力
exports.Func=function(x){
var y=x['y'];
var y=x['y'];//Object型もしくはArray等の値を受け取り
----同期処理----
...
---------------
for(var i=0;i<y.length;i++){}....
---------------//ここの同期処理内で、外のスコープのyが他の命令によって書き換えられる恐れがある。この同期処理
}
```
  • Node.js

    4219 questions

    Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る