为什么我不能从hamsters.js里面运行我的方法?

时间:2016-04-28 16:21:08

标签: javascript multithreading

我想运行此函数,以多线程模式更新我的数据库:

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的意义是什么?

1 个答案:

答案 0 :(得分:0)

Hamsters.js的创建者。我看到的问题是你正在混合主线程和多线程逻辑的范围。请记住,Web工作者(线程)是沙盒环境,在线程中您想要的任何内容都需要传递给线程。

comanda.sincro.query不存在,因为你没有用params对象传递它等等。