這對我來說很怪異。所以,如果我不只有在代碼被轟出之前我纔會警告代碼纔有效?
function BindAlbumAndPhotoData()
{
// Get an array of all the user's Albums
var aAlbums = GetAllAlbums(userID, token);
alert("aAlbums: " + aAlbums);
if (aAlbums == null || aAlbums == "undefined")
return;
// Set the default albumID
var defaultAlbumID = aAlbums[0].id;
};
所以我得到一個未定義的錯誤行var defaultAlbumID = aAlbums [0] .id;如果我不取消註釋警報(「aAlbums:」+ aAlbums);
這是什麼?如果我註釋掉警報(「aAlbums:」+ aAlbums);那麼我得到一個未定義的var defaultAlbumID = aAlbums [0] .id;
這太奇怪了。我一整晚都在努力弄清楚爲什麼我一直在爲aAlbum [0]定義一個未定義的數據,並且一旦我添加了一個我以前已經使用過的警報,一切都很好......對我來說毫無意義。
這裏的GetAllAlbums的全碼:
所以我不返回數組,直到我打了FB.api異步調用的回調,所以我看不出我的defaultAlbumID = aAlbums [ 0] .ID;在我有一個有效的數據數組之前,正在執行一行代碼。當我加入警報時,它會延遲到達我的行defaultAlbumID = aAlbums [0] .id;導致它我想幸運地有數據beacuse異步FB.api調用已完成,但我再也看不到如果有這樣的問題,當我等待調用之前繼續和返回數組aAlbums在我的BindAlbumAndPhotoData()方法中。
更新#3
這不是打我的回調警報。我仍然在這裏做錯了事。
UPDATE#4 - 由於某種原因,它不會觸及我的FB.api回調。
function GetAllAlbums(userID, accessToken, callbackFunctionSuccess)
{
var aAlbums = []; // array
var uri = "/" + userID + "/albums?access_token=" + accessToken;
alert("uri: " + uri);
FB.api(uri, function (response)
{
// check for a valid response
if (!response || response.error)
{
alert("error occured");
return;
}
for (var i = 0, l = response.data.length; i < l; i++) {
alert("Album #: " + i + "\r\n" +
"response.data[i].id: " + response.data[i].id + "\r\n" +
"response.data[i].name: " + response.data[i].name + "\r\n" +
"response.data[i].count: " + response.data[i].count + "\r\n" +
"response.data[i].link: " + response.data[i].link
);
aAlbums[i] = new Album(
response.data[i].id,
response.data[i].name,
response.data[i].count,
response.data[i].link
);
alert("aAlbums[" + i + "].id : " + aAlbums[i].id);
}
alert("about to pass back the array to the callback function");
// pass the array back to the callback function sent as a param to the GetAllAlbums method here
callbackFunctionSuccess(aAlbums);
});
}
你可能在這裏做ajax('GetAllAlbums(userID,token);'),你不是嗎? – Reigel 2010-07-27 04:21:56
GetAllAlbums(userID,token);'做什麼? – Hristo 2010-07-27 04:22:55
是的......但我仍然不明白。 – PositiveGuy 2010-07-27 04:23:13