내 파일을 읽고 파싱하는데 제대로 작동하지만 출력 문자열을 반환하지 않는 것 같습니다. 클라이언트에서 할당 된 변수에서이 문자열에 액세스 할 수 싶습니다. 나는 비동기 시리즈를 사용하여 콜백 지옥을 완화하고 출력이 콘솔에 잘 맞도록 돕는다. 그러나 같은 지점에 리턴 출력을 떨어 뜨리면 작동하지 않습니다. 제안? async.series
에 대한 콜백과 같은 비동기 기능에서 보내고node.js에서 파싱 된 파일의 출력을 반환합니다.
embed_analytics: function(){
var output;
async.series({
read_file: function(callback){
fs.readFile(__rootpath+'/apps/analytics/data/analytics.json', 'UTF-8', function(err,data){
if(err) {
console.error("Could not open file: %s", err);
process.exit(1);
}
try {
var config = JSON.parse(data);
callback(null, config);
}
catch(exception) {
console.error("There was an error parsing the json config file: ", exception);
process.exit(1);
}
});
}
},
function(err, results) {
_.each(results.read_file, function(element){
output+="$('"+element.Selector+"').click(function(){_gaq.push(['_trackEvent',"+element.Category+","+element.Action+","+element.Label+"]);});\n";
});
console.log(output);
}
);
}
비동기 영역과 함께 제공됩니다. 단순히 불가능합니다. 자신의 API에 콜백 매개 변수를 지정해야합니다. – Pointy
'callback hell'에 대해 들어 본 적이 없습니다. 결코 그것도 들어 가지 않았다. 비동기적인 사고 방식으로 전환하지 않고 동 기적으로 프로그램을 계속하려고 만한다면 당신은 그것에 빠지게됩니다. –
아, 오늘 뭔가 새로운 것을 배웠습니다. 모두 도움을 주셔서 감사합니다. – codeisforeva