1
私は個人的なプロジェクトのために(cheerioを使用して)クローラを行う方法を学んでいます。クロール自体は正常に動作していますが、何らかの形で構築しているオブジェクト(eventDetails)が返されていません。以下では、関数レベルで宣言されたオブジェクトが、要求とともに正しく埋め込まれていて、その外側には存在していないことがわかります。あなたは助けてもらえますか?ありがとう。Javascript関数はオブジェクトを返さない
function crawlEventDetails(eventLink){
var eventDetails = new Object();
//console.log(eventLink);
request(urlDomain + eventLink, function(err, response, html) {
if(err){
console.log(err);
}
else {
var $ = cheerio.load(html);
eventDetails.date = $('.detail.textsmall').eq(0).text();
eventDetails.time = $('.detail.textsmall').eq(1).text();
eventDetails.place = $('.detail.textsmall').eq(2).text();
eventDetails.price = $('.detail.textsmall').eq(3).text();
console.log(eventDetails); //OK!
}
});
console.log(eventDetails); //empty!
return eventDetails; // empty!
}
時間をかけてコールバック関数を理解してください。ネット上で利用可能なリソースがたくさんあります。 –
はい、私はコールバックを使用しようとしていました。私は、より多くの研究、おかげでやります。 – user3250118