2011-11-19 163 views
2

我調用了一個帶回調函數參數的函數。如何在回調之外訪問回調函數中的值?

我想把給回調的值加到一個新的數組上,以便我可以在別的地方使用它。問題是無論我做什麼,數組都保持空白。

var testarray = new Array(); 

Getfirstpictures(id, function(myarray) { 
    testarray.push(myarray[0]); 
}); 

alert(testarray); 
+3

這並不解析。你不關閉括號。 – Artefacto

回答

0

使用你的回調:

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 
} 
+0

因此,你可以幫我一下我必須做 – michael643

+0

我已經添加了一個更新,現在如果你想用myarray做更多的事情,只需使用它調用另一個函數即可。 – Joe

1

由於它採用的回調,這是一個非常安全的賭注,Getfirstpictures是一個異步函數。

在觸發回調發生之前,您正在調用alert

你需要等待,直到觸發發生(通常通過將警報回調函數內。

相關問題