可以nodejs阻止,直到完成任何事情?
问题描述:
我想要的东西应该做我的工作之前完成:可以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;
});
}
};
答
fs.readFileSync
不块(这样做require
种),所以你registerTools
功能阻塞。
不管这是个好主意还是值得商榷的。
你没有做任何异步工作。所以它会默认阻止。 – thefourtheye