NodeJS를 사용하여 ID 목록에서 데이터베이스 정보를 얻고 객체 배열을 채 웁니다. 나는 동 기적으로 처리 할 필요가있다. 다음 함수 호출이 호출되기 전에 이전 함수 호출이 끝날 때까지 기다릴 수 있도록이 작업을 수행하는 방법을 파악하는 데 문제가 있습니다. 그런 다음 '각'반복 작업 모두를 호출하여 반환을 완료합니다.NodeJS 동기 문제
예 :
getInfo();
function getInfo(){
var return_arr = Array();
var ids = getListOfIDs();
// loop through each id getting more info from db
$.each(ids, function(i, v){
return_arr.push(getFullInfo(id));
});
return return_arr;
}
function getListOfIDs(){
// database call to get IDs
// returns array
}
function getFullInfo(){
// database call to get full info
// returns object
}
이 단순화 된 예입니다, 그래서 가서 JS에서 개최 할 필요가 후 처리 조인 여러가있는 모든 정보를 얻을 수있는 하나의 쿼리가 작동하지 않습니다 가정합니다. 또한 적절한 오류 처리를 수행하고 있다고 가정합니다.이 예에서는 생략했습니다.
콜백은 호출이 동 기적으로 처리되는 것을 보장하지 않습니다. 코드 예제에 약속을 제공 할 수 있습니까? – user6041966
콜백은 내 이해에서 동 기적으로 통화를 처리하도록 보장합니다. 당신은 단지 그것들을 가지고 이전의 것들을 호출해야합니다. – zhangjinzhou
물론 약속 코드는 여러 수준을 포함시키지 않고 더 깨끗합니다. 그러나 콜백은 동기 문제를 해결하는 데 문제가 없어야합니다. – zhangjinzhou