我訪問API Trello的,但我碰到下面的問題就來了:陣列返回undefined,因爲異步
Trello訪問這些信息,讓每個現有行的id,代碼如下:
var x;
var numberCardsByList = [];
trello.get("/1/boards/[idBoard]/lists/all", function(err, data) {
if (err) throw err;
console.log("Number of list: " + data.length);
for(var i=0; i<data.length; i++){
x = data[i];
findNumberCards(x);
}
});
正如你所看到的,在獲得大小之後,我用循環遍歷所有這些隊列,在循環內將每行連接到一個變量x中,並調用一個函數來獲取隊列中的卡片數量。對於卡的數量的代碼如下:
function findNumberCards(x){
trello.get("/1/lists/"+x.id+"/cards", function(err, dados){
if(err) throw err;
console.log("Name List: " + x.name + " have " + dados.length + " cards");
numberCardsByList[x.name] = dados.length;
});
}
在此之前的所有權利,但是當我嘗試在Trello搜索結束後訪問向量numberCardsByList
,它返回undefined:
var x;
var numberCardsByList = [];
trello.get("/1/boards/[idBoard]/lists/all", function(err, data) {
if (err) throw err;
console.log("Quantidade de Filas: " + data.length);
for(var i=0; i<data.length; i++){
x = data[i];
findNumberCards(x);
}
});
console.log(numberCardsByList);
我知道,這是因爲異步,但是,不能解決。
請以更完整的方式展示您的代碼示例..我認爲發生的事情是您首先調用'/ 1/boards/[idBoard]/lists/all',然後在回調函數中調用另一個函數做異步操作,並且在那個函數之後,如果我錯了,你還要做其他的事情糾正我 –
yes是正確的,因爲我解決了這個問題? – Jonathan