为什么可以't我从hamsters.js内部运行我的方法

Why can't I run my method from inside hamsters.js?

本文关键字:js hamsters 内部 运行 方法 我的 我从 为什么      更新时间:2023-09-26

我想运行这个函数,以便在多线程模式下更新我的数据库:

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有什么意义呢?

Hamsters.js的创建者。我看到的问题是,您混合了主线程和多线程逻辑的范围。请记住,web工作者(线程)是沙盒环境,您希望在线程内实现的任何事情都需要传递到线程中。

comanda.sincroquery不存在,因为您没有将其与params对象一起传递,等等。