【发布时间】:2014-05-30 18:52:03
【问题描述】:
我的 while 循环给了我一个超出调用堆栈大小的错误,所以我试图以一些不起作用的方式限制它,现在,我有以下部分:
var hasnext = true;
while(hasnext) {
options.form['formBusca:dataScroller1'] = (++page).toString();
var request = client.post(options, function(error, response, body) {
var html = dom.load(body);
var buttons = html('td.rich-datascr-button');
if (some_length_condition_that_does_not_matter) {
hasnext = false;
}
});
process.stdout.write((page).toString() + '\r');
break;
}
如果我现在学到的逻辑还是一样的话,这个while应该执行一次,并且只执行一次,因为它的最后一条语句是无条件的break,所以它应该在完成第一次迭代后结束。
但是,这不起作用。在某种程度上,我每次都超过调用堆栈。为什么会发生,我该如何防止它发生?
RangeError: Maximum call stack size exceeded
附加信息:client 是 request 模块,dom 是 cheerio 模块。
【问题讨论】:
标签: node.js while-loop callstack