У меня есть этот фрагмент кода внутри функции.Как проверить, завершил ли цикл for все итерации в узле js, если цикл содержит вызов функции с обратным вызовом?
for(var i = 0; i < common.template1.ROIs.length; i++)
{
var filename = './data/' + sessionid + '_' + common.template1.ROIs[i].name + '.jpg';
console.log(filename);
tesseract.process(filename, options, function(err, text){
if(err)
{
throw err;
}
var attr = filename;
attr = attr.replace('./data/' + sessionid + '_', '');
attr = attr.replace('.jpg', '');
retobj[attr] = text;
console.log(text);
});
}
res.send(JSON.stringify(retobj));
«retobj» является глобальной переменной, которая инициализируется как пустой objectt, и я хочу, чтобы отправить его в качестве ответа после того, как все атрибуты добавляются внутри цикл. Я новичок в JS и узнал, что он не будет работать, как на другом языке программирования. Обратные вызовы внутри цикла выполняются асинхронно, и возвращается пустой объект. Каков правильный способ отправки обратно retobj и выяснить, были ли все обратные вызовы завершены? Спасибо заранее.
Если вам нужно иметь все функции обратного вызова закончил, нужно код после цикла будет другой обратного вызова –