Cheerio每个循环都不会提前爆发

时间:2017-03-22 04:26:02

标签: jquery node.js cheerio

在Cheerio / Jquery documentation中声明,返回false应该提前打破每个循环。

我有以下代码:

"use strict";
let cheerio = require('cheerio');
let $ = cheerio.load('<a href="www.test.com"></a><a href="www.test.com"></a>');

$('a').each(function(index,value){
  console.log(index);
  return false;
});

在我的脑海里,它应该打印0到控制台,但它打印0和1.我缺少什么?

1 个答案:

答案 0 :(得分:2)

代码很好。如果你看一下cheerio的源代码,你可以看到如果你返回false,循环就没有办法继续。

https://github.com/cheeriojs/cheerio/blob/master/lib/api/traversing.js#L298

exports.each = function(fn) {
  var i = 0, len = this.length;
  while (i < len && fn.call(this[i], i, this[i]) !== false) ++i;
  return this;
};