2015-12-21 66 views
0

我想要的東西應該做我的工作之前完成:可以nodejs阻止,直到完成任何事情?

registerTools(); 

// this should do until registerTools is done! 
processJob(); 

這裏是registerTools

function registerTools() { 
    extractors = fs.readdirSync(extractorPath).filter(function(extractor) { 
     return extractor !== "temp"; 
    }); 

    totalExtractors = extractors.length; 
    extractors.map(function(item) { 
     var fullExtractorPath = path.join(extractorPath, item); 
     return require(fullExtractorPath); 
    }).forEach(function(extractor) { 
     if (extractor.test) { 
     testExtractor(extractor); 
     } else { 
     satisfiedExtractors++; 
     registerExtractor(extractor); 
     } 
    }); 
} 

var registerExtractor = function(extractor) { 
    if (extractor.extensions) { 
     extractor.extensions.forEach(function(ext) { 
     extensionExtractors[ext] = extractor.extract; 
     }); 
    } 
}; 
+5

你沒有做任何異步工作。所以它會默認阻止。 – thefourtheye

回答

0

fs.readFileSync不塊(這樣做require種),所以你registerTools功能阻塞。

不管這是個好主意還是值得商榷的。

相關問題