gpt4 book ai didi

javascript - for 循环后返回一个值

转载 作者:行者123 更新时间:2023-11-30 18:21:00 25 4
gpt4 key购买 nike

所以,在过去的几个小时里,我一直在尝试在执行一些 for 循环后从函数中获取结果:

Cluster.prototype.initiate_api_data_fetching = function(username) {
var self = this,
object = [];

return self.initiate_available_market_search(username, function(data_object){
var json_obj = JSON.parse(data_object);
for(var obj_key in json_obj) {
for (var i = json_obj[obj_key].length - 1; i >= 0; i--) {
self.initiate_market_items_data_fetching(username, json_obj[obj_key][i].site, function(data_obj){
var json_object = JSON.parse(data_obj);
for(var data_key in json_object) {
for (var j = json_object[data_key].length - 1; j >= 0; j--) {
object.push(json_object[data_key][j]);
/*log(object);*/
};
};
log(object);
});
};
};
});
};

对所有变量和其他对您的读者没有意义的事物进行抽象,我只想知道如何返回包含我插入其中的数据的 object 数组.如果我记录 /*log(object);*/ 所在的位置,一切都很好,但是如果我想在函数末尾查看对象包含的内容,我会得到一个空数组.

最佳答案

我建议您在主函数中添加一个回调,并在完成时调用它。

Cluster.prototype.initiate_api_data_fetching = function (username, callback) {
var self = this,
object = [];

return self.initiate_available_market_search(username, function (data_object) {
var json_obj = JSON.parse(data_object)
, counter = 0;

function done() {
counter -= 1;
if (counter === 0) {
callback(object);
}
}

for (var obj_key in json_obj) {
if (!json_obj.hasOwnProperty(obj_key)) { continue; }

for (var i = json_obj[obj_key].length - 1; i >= 0; i--) {
counter += 1;
self.initiate_market_items_data_fetching(username, json_obj[obj_key][i].site, function (data_obj) {
var json_object = JSON.parse(data_obj);
for (var data_key in json_object) {
if (!json_object.hasOwnProperty(data_key)) { continue; }

for (var j = json_object[data_key].length - 1; j >= 0; j--) {
object.push(json_object[data_key][j]);
/*log(object);*/
}
}
done();
});
}
}
});
};

附言。 1 假设 initiate_api_data_fetching 是异步的。
<强>附言。 2 按照上面评论者的建议改进你的代码。我通过向您展示如何同步异步调用来回答您的直接问题,但不要止步于此。

关于javascript - for 循环后返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12036842/

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