방금 노드를 사용하기 시작했으며 빠르게 주목 한 것은 콜백이 얼마나 빨리 바보 같은 수준의 들여 쓰기까지 만들 수 있는지입니다.
doStuff(arg1, arg2, function(err, result) {
doMoreStuff(arg3, arg4, function(err, result) {
doEvenMoreStuff(arg5, arg6, function(err, result) {
omgHowDidIGetHere();
});
});
});
공식 스타일 가이드는 별도의 기능을 각각의 콜백을 넣어라고하지만 개체가 모두 통과해야한다와 같은 단일 객체가 사용할 수있는 여러 가지 층 위에서 아래 수준에서 선언 클로저의 사용에 지나치게 제한적인 것, 그리고 만들기 중간 콜백.
여기서 도움을주기 위해 함수 범위를 사용해도 되나요? 전역 객체에 액세스해야하는 모든 콜백 함수를 해당 객체를 선언하는 함수 안에 넣으면 클로저로 이동합니까?
function topLevelFunction(globalishObject, callback) {
function doMoreStuffImpl(err, result) {
doMoreStuff(arg5, arg6, function(err, result) {
callback(null, globalishObject);
});
}
doStuff(arg1, arg2, doMoreStuffImpl);
}
그리고 더 많은 층들에 대해서도 ...
또는 모든 단일 콜백에 대해 명명 된 함수를 선언하지 않고 들여 쓰기 수준을 줄이는 데 도움이되는 프레임 워크 등이 있습니까? 콜백 피라미드는 어떻게 처리합니까?