gpt4 book ai didi

javascript - 尝试从 javascript 中的异步调用创建数组时的回调

转载 作者:行者123 更新时间:2023-12-03 08:07:35 24 4
gpt4 key购买 nike

我正在尝试使用一个使用 for 循环的函数从异步 get 请求创建一个数组,以便在 get 请求中传递参数。

var loadRarity = function () {

var rarities = [];

for (var i =0; i < deck.length; i++) {

Card.get({cardName: deck[i].card_name}, function(data) {

rarities.push(data.data[0].rarity);
console.log(rarities); //20 instances where the array is being populated

});
console.log(rarities);// result :20x [] empty array
}
return rarities;

};
var raritiesArray = loadRarity();
console.log(raritiesArray); //empty array

我不知道如何使用回调来完成这项工作。

最佳答案

一个选项是增加一个计数器来检查您是否处于最后一个回调,然后在最后一个回调中执行任何所需的操作

var loadRarity = function () {

var rarities = [];

var counter = 0; // initialize counter

for (var i =0; i < deck.length; i++) {

Card.get({cardName: deck[i].card_name}, function(data) {

counter += 1; //increment counter

rarities.push(data.data[0].rarity);
console.log(rarities); //20 instances where the array is being populated

if(counter == deck.length){ //if true you are in the last callback
console.log(raritiesArray); // array with all the elements
}

});
}
return rarities;

};
var raritiesArray = loadRarity();

关于javascript - 尝试从 javascript 中的异步调用创建数组时的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34314477/

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