关于cheerio的each方法,既然是异步非阻塞的
发布于 10 年前 作者 csongysun 4452 次浏览 最后一次编辑是 9 年前 来自 问答

app.get(’/’, function (req, res, next) { // 用 superagent 去抓取 https://cnodejs.org/ 的内容 superagent.get(‘https://cnodejs.org/’) .end(function (err, sres) { // 常规的错误处理 if (err) { return next(err); } // sres.text 里面存储着网页的 html 内容,将它传给 cheerio.load 之后 // 就可以得到一个实现了 jquery 接口的变量,我们习惯性地将它命名为 $ // 剩下就都是 jquery 的内容了 var $ = cheerio.load(sres.text); var items = []; $(’#topic_list .topic_title’).each(function (idx, element) { var $element = $(element); items.push({ title: $element.attr(‘title’), href: $element.attr(‘href’) }); });

  res.send(items);
});

});

假如each的回调函数块比较耗时间 会不会在each任务完成前 就send出去了

1 回复

用EventProxy

回到顶部