Пожалуйста, проверьте, если это следующая функция образца non-blocking
sample_function = function(input, fn){
let count=0;
for(let i=0; i<input.length; i++){
db.query(`SELECT * FROM DB WHERE id=?`,[input[i].id], function(error, result){
process_function(input[i], function(error, result2){
count++;
if(count===input.length){
fn(input)
}
})
})
}
}
Если для полного выполнения for loop
потребуется около 10 секунд (5 секунд для чтения из базы данных и 5 секунд для обработки с использованием локального потока (process_function
), for loop
заблокирует другие новые события на 10 секунд) ? Если да, то как бы вы исправили эту функцию, чтобы она не была блокирующей? Я пытаюсь научиться. Пожалуйста, помогите