我正在使用Chrome擴展程序,我碰到了一堵牆。Javascript:這個條件有什麼問題?
function isInQueue(id) {
chrome.extension.sendRequest({getQueueItems: 1}, function(response) {
var items = response.items;
if (items) {
for (var i = 0; i < items.length; i++) {
if ((items[i].id == id) == true) return true;
}
return false;
} else { return false; }
});
}
該請求返回'items',它是一個對象數組。我試圖看看以外的其他項目的隊列已經存在裏面的這個隊列。例如,外部有一個id等於'198677'的項目。我知道我已經有一個完全相同的物品在我的隊列中,具有完全相同的編號'198677',但是,當我測試兩個等號爲(items[i].id == id) == true
時,它返回false。我檢查了兩者的類型,它們都是字符串。我嘗試過使用===
,但這一行不通。我嘗試給它們中的每一個都加零以將它們變成整數,並且當它實際上是真的時使函數返回真,但是,當我測試真正的if (isInQueue(id) == true)
時,條件返回了假。
這對我來說都非常混亂和令人沮喪。它們都是字符串,它爲什麼不起作用?
幫助非常感謝。
@X企業:你不需要在這裏調用一個回調函數,因爲你沒有做任何異步的事情。您可以刪除回調參數,只需使用'return result;'而不是'callback(result);'完成 – sje397 2010-12-19 23:43:55