我想运行此函数,以多线程模式更新我的数据库:
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 :(得分:0)
Hamsters.js的创建者。我看到的问题是你正在混合主线程和多线程逻辑的范围。请记住,Web工作者(线程)是沙盒环境,在线程中您想要的任何内容都需要传递给线程。
comanda.sincro.query不存在,因为你没有用params对象传递它等等。