异步调用中的node.js递归例程

时间:2014-09-20 09:16:10

标签: node.js asynchronous recursion nlp wordnet

我有一个与WordNet非常相似的资源,在那里我可以检索给定单词的同义词。目标是给出一个种子词,例如“car”,我想检索所有可能的传递同义词,例如,在第一次调用中我得到“car”的同义词,即“auto”,“motocar”,然后我检索“auto”和“motocar”等的所有同义词。显然,fechting是一个递归过程,检索同义词是在异步调用中执行的

loadSynonyms("car", [], function(err, res) {
  console.log(res)
});

function loadResultSynonyms(synonyms, results, callback2) {

  async.series([
    function(callback) {
      async.eachSeries(results, function(res, callbackDone) {
        if (synonyms.indexOf(res) == -1) {
          synonyms.push(res)
          redisfetch(res, function(err, results) {
            loadSynonyms(synonyms, results)
            callbackDone();
          });
        } else {
          callbackDone();
        }
      })
    },

    function(callback) {
      callback2(null, synonyms)
    }
  ])
}

所以,我希望在结尾synonyms列表中包含所有同义词,但它不起作用。我想我搞砸了递归和异步调用。

如果你能帮助我,我将不胜感激。

0 个答案:

没有答案