저는 node.js를 처음 사용합니다.node.js setTimeout 루프 문제
데이터베이스 SELECT 쿼리를 실행하고 SELECT 결과 처리가 완료된 후 3 초가 반복되는 setTimeout을 만들려고했습니다.
var newDBMessagesInterval = 3000; // 3 Seconds
(function newDBMessagesSchedule() {
setTimeout(function() {
dbNewMessagesQuery(function(dbResults,dbResultsLength) {
console.log(dbResults);
newDBMessagesSchedule();
});
}, newDBMessagesInterval)
})();
function dbNewMessagesQuery(callback) {
dbConnection.query("SELECT data1,data2,data3 FROM table WHERE condition=1;", function (dbError, dbResults, dbFields) {
if(dbResults.length > 0) {
callback(dbResults,dbResults.length);
}
});
callback();
}
그것은 루프의 setTimeout 번호가 실행될 때마다 증가가 나타납니다 (예 : 첫 번째 CONSOLE.LOG (DBRESULTS), 그러나 2 회 후 4 등). 또한 데이터베이스에서 기다리는 경우 다음 번에 처리를 시도하기 전에 완료해야하는지 확실하지 않습니다.