2014-07-19 1 views
0

다음 코드를 더 빨리 작성할 수있는 방법이 있는지 알고 싶습니다.자바 스크립트 구문 : 중첩 콜백

items.getAll() 콜백은 database.query() 콜백과 동일한 인수를 사용해야합니다. 그래서 나는 그것을 바꾸지 않고 콜백을 "rethrow"하고 싶습니다. 현대 자바 스크립트 런타임에서

database.query('SELECT * FROM items', callback); 

이보다 짧은 방법을 사용할 수 (즉,하지 오래된 IE) :

items.getAll = function(callback){ 
    database.query('SELECT * FROM items', function(err, rows){ 
     callback(err, rows); 
    }); 
}; 

답변

1

그냥 직접 콜백을 통과

items.getAll = database.query.bind(database, "SELECT * FROM items"); 
+0

좋아 그것은> 쉬운 것이 었습니다 <감사합니다. – Nicolas

+0

@Nicolas 문제 없음 - 내가 답변에 추가 한 내용을 확인하십시오. – Pointy

+0

Ok thx, 서버 측 코드이므로 호환성 문제가 없어야합니다. bind()에 대해 조금 읽을 것입니다. – Nicolas