我试图在多个线程中进行多个字典搜索。
我有一个findBinaryWord(..)函数,我想运行两次或者x次,每次都在不同的线程上,每个函数得到2个参数,这应该返回true或false如果找到了单词。
试图使用async& webhamsters http://www.hamsters.io/,http://caolan.github.io/async/
但我无法找到如何将多个带变量的函数设置到函数堆栈。
有人可以告诉我一个应该如何写的例子吗?
我尝试了以下内容:
stack.push(dictionaryManager.findBinaryWord(data.word, translator.dictionaries[dictionary]["words"] ) );
并启动堆栈
async.parallel( stack, function( err, result ) {
console.log(result);
});
但是我收到了错误:
这是我的函数,它获取单词,一个字符串,一个数组,在哪里搜索,一个单词数组。
function findBinaryWord( word, dict ) {..
// If we've found the word, stop now
if ( word === found ) {
foundit = true;
callback(null, foundit);
}
..
.
// Nothing was found
callback(null, false);
}
答案 0 :(得分:0)
在stack
数组中,你实际上并没有推送一个函数,而是它的结果,我认为它是false
因此错误。
试试这样。 (将callback
作为第三个参数添加到findBinaryWord
)
stack.push(function(callback) {
dictionaryManager.findBinaryWord(data.word, translator.dictionaries[dictionary]["words"], callback);
});
并将您的findBinaryWord
更改为接受callback
作为参数
function findBinaryWord( word, dict, callback) {
// ...
// If we've found the word, stop now
if ( word === found ) {
foundit = true;
callback(null, foundit);
}
}