В настоящее время я работаю над простой веб-программой nodejs. Он основан на cheerio, и я получаю элементы с веб-сайта и извлекаю оттуда некоторую информацию.
Насколько я понимаю, все функции, которые я вызываю внутри foreach l oop, являются syn c, поэтому они должны выполнить сверху вниз. И поскольку foreach l oop также является только нормальным l oop, который выполняет syn c в js, функция должна вернуть мой законченный массив. Но вместо этого он становится неопределенным, и когда я захожу в него непосредственно на консоль, он работает (?).
function getIntensiv(){
var intensivregister = [];
request.post({url: 'SOMEURL', form: {SOMEFORM}}, function(err,res,body){
var $ = cheerio.load(body);
$('#dataList').children('tbody').children('tr').each(function(i, elem){
var name = $(elem).children('td').first().text().trim().split("\n")[0].trim();
var zipcity = $(elem).children('td').first().children('small').last().text();
var streetnr = $(elem).children('td').first().children('br').last().prev().text();
intensivregister.push({'name': name, 'zipcity': zipcity, 'streetnr': streetnr});
});
console.log(intensivregister); //works and prints the finished array
return intensivregister; //returns undefined before function finished
});
}
Буду признателен, если вы объясните мне, где моя ошибка, и поможете исправить ее.