2016-04-28 9 views
0

私はこの機能を実行する、ためのマルチスレッドモードでの私のDBを更新する:hamsters.jsの中から自分のメソッドを実行できないのはなぜですか?

var params = {'array': array}; 

hamsters.run(params, function() { 

    var arr = params.array; 

    arr.forEach(function (query) { 


     comanda.sincro.query(query, function() { 

      //Optional 
      rtn.data.push(query); 

     }); 

     console.log(query); 

    }); 

}, function (output) { 

    //console.log("MT TEST 2", output, "CB TRUE"); 

    console.log("MT TEST", output); 

    if (typeof (cB) === "function") { 
     cB(true); 
    } 

}, hamsters.maxThreads, true); 

しかし、私はこのエラーを取得する:

hamsters.js:886 Error Hamster #0: Line 9 in undefined: Uncaught ReferenceError: comanda is not definedonerror @ hamsters.js:886 
hamsters.js:886 Error Hamster #1: Line 9 in undefined: Uncaught ReferenceError: comanda is not definedonerror @ hamsters.js:886 
hamsters.js:886 Error Hamster #2: Line 9 in undefined: Uncaught ReferenceError: comanda is not definedonerror @ hamsters.js:886 
hamsters.js:886 Error Hamster #3: Line 9 in undefined: Uncaught ReferenceError: comanda is not defined 

なぜ、私の関数が定義されていると、私の機能の中で作業している場合コールバック?

それ以外の場合、私の要素で簡単な操作を行うことができない場合、Hamsters.jsの使用感はどうですか?

+0

'comanda'と' rtn'はどこで定義されていますか? – rene

+0

"rtn"オブジェクトハムスターで定義されていると思います。 "comanda"はオブジェクトの外側にある私によって定義されています –

+0

comandaは知られていないことを明示しているので、定義したと思いますが、コードを間違えた – rene

答えて

0

Hamsters.jsの作成者。私が見ている問題は、メインスレッドとマルチスレッドロジックのスコープを混在させていることです。 Webワーカー(スレッド)はサンドボックス環境であり、スレッド内で可能にしたいものはすべてスレッドに渡す必要があることを忘れないでください。

comans.sincro.queryはparamsオブジェクトなどで渡さなかったため存在しません。

関連する問題