gpt4 book ai didi

javascript - Node.js 超出最大调用堆栈

转载 作者:行者123 更新时间:2023-12-02 14:20:38 25 4
gpt4 key购买 nike

我有same question as earlier但无法将答案与我的代码联系起来。这是我的错误:RangeError:超出最大调用堆栈大小

我的代码的高度简化的伪版本是这样的:

function make_request(url, other_params){ 

request(url, function(response){

if(something) var some_var = 'some value';
else var some_var = '';

//do something with response to generate, some_var, and insert into DB

var my_arr = [some_var];

connection.query('INSERT my_table SET name = ?', my_arr, function(err, rows, fields) {
if(my_arr==''){
// generate new url to make new request
make_request(url, other_params);
}
});

});
}

connection.query('SELECT * from my_table', function(err, rows, fields){

var len =rows.length;

for(var i = 0; i < len; i++){

var url = rows[i].url;

make_request(url, other_params);

}
});

我尝试过将内部 make_request 包装在 setImmediatesetTimeout 以及其他一些技巧中,但似乎没有什么可以阻止调用堆栈错误。我可以添加任何可以完成这项工作的库。任何想法将不胜感激。

最佳答案

如果我正确地阅读了代码,则该 block

     if(my_arr==''){
// generate new url to make new request
function make_request(url, other_params);
}

ma​​ke_request重新定义为空函数。您不想将其称为“此时”吗?我认为空重定义会给您带来无法终止的间接递归。

关于javascript - Node.js 超出最大调用堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38668642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com