我試圖編寫一個腳本,該腳本1)從文本輸入字段中讀取FB用戶ID &將它們循環到數組中2)調用FB.api與每個名字的ID並將返回的名字值保存到另一個數組中。 問題:由於某種原因,從FB.api收到的所有名字保存到相同的數組索引的地方5.這是多餘的,因爲怪異的循環應該只從索引1到4保存FB.api調用對使用Javascript的for循環的數組的響應
<script type="text/javascript">
var ids = new Array();
var names = new Array();
var fields = 4;
function firstNames() {
var i;
var k;
for (i=1;i<=fields;i++)
{
ids[i] = document.getElementById("field"+i).value;
}
for (k=1; k<=fields; k++)
{
FB.api('/'+ids[k], function(response) {
names[k] = response.first_name;
alert(k+' test '+names[k]);
});
}
}
</script>
有任何人遇到類似的事情?任何幫助將非常感激。
預先感謝。
啊哈,我害怕它會是這樣的事情。我想我現在不得不以醜陋的方式嘗試稍後復活。感謝您的幫助Joel! :) – Lasba 2011-05-12 20:59:56
我不認爲異步API調用是關於「k」值爲「5」的問題......請閱讀Mikado Takada的評論:「技術根源是範圍解析/評估策略」 - http://blog.mixu.net/2011/02/03/javascript-node-js-and-for-loops/#comment-7980 – 2011-06-01 02:46:01