2015-12-21 56 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功能阻塞。

不管这是个好主意还是值得商榷的。