我調用了一個帶回調函數參數的函數。如何在回調之外訪問回調函數中的值?
我想把給回調的值加到一個新的數組上,以便我可以在別的地方使用它。問題是無論我做什麼,數組都保持空白。
var testarray = new Array();
Getfirstpictures(id, function(myarray) {
testarray.push(myarray[0]);
});
alert(testarray);
我調用了一個帶回調函數參數的函數。如何在回調之外訪問回調函數中的值?
我想把給回調的值加到一個新的數組上,以便我可以在別的地方使用它。問題是無論我做什麼,數組都保持空白。
var testarray = new Array();
Getfirstpictures(id, function(myarray) {
testarray.push(myarray[0]);
});
alert(testarray);
使用你的回調:
Getfirstpictures(id, function(myarray)
{
alert(myarray);
});
這回電話不立即執行。它由您的Getfirpictures方法執行。
編輯:
變化:
var testarray = new Array();
Getfirstpictures(id, function(myarray) {
testarray.push(myarray[0]);
});
alert(testarray);
到:
Getfirstpictures(id, function(myarray) {
alert(myarray);
});
,它會工作。所以,你也可以做這樣的事情:
Getfirstpictures(id, function(myarray) {
doSomething(myarray);
});
function doSomething(arr) {
for (var i = 0; i < arr.length; i++)
alert(arr[i]); // or add elements to the DOM etc etc
}
因此,你可以幫我一下我必須做 – michael643
我已經添加了一個更新,現在如果你想用myarray做更多的事情,只需使用它調用另一個函數即可。 – Joe
由於它採用的回調,這是一個非常安全的賭注,Getfirstpictures
是一個異步函數。
在觸發回調發生之前,您正在調用alert
。
你需要等待,直到觸發發生(通常通過將警報回調函數內。
這並不解析。你不關閉括號。 – Artefacto