0
レシピ配列を返そうとしていますが、空であるようです。ループが実行される前にコールバックが実行されているからです。私はcheerioでループするこのケースでこれを修正できますか?要求を含むループを含むコールバック配列
function scrapeNow(url, callback) {
request(url, function(error, response, html){
// First we'll check to make sure no errors occurred when making the request
if(!error){
var recipes = [];
var $ = cheerio.load(html);
$('div.article-block a.picture').each(function(i, elem) {
console.log(i);
var deepUrl = $(this).attr('href');
if(!$(this).attr('href').indexOf("tema") > -1) {
request(deepUrl, function(error, response, html){
// First we'll check to make sure no errors occurred when making the request
if(!error){
var $ = cheerio.load(html);
var image = $('div.article div.article-main-pic img').attr('src');
var title = $('div.recipe h2.fn').text();
var object = {url: deepUrl, title : title, image : image};
recipes.push(object);
}
});
}
});
callback(recipes);
}
});
}
私はすでにあなたに答えています。しかし、2番目の要求の中で2番目のif(!error){}の後にコールバックを置くと良いでしょう。 –
はい、あなたが好きで、そこにコールバックを入れると、 'res.jsonそれ。 –
このコードをフロントエンドで使用していますか?私はそれを以前気づかなかったので、私は考えてみましょう。 –