1
我有一個值傳遞給函數的數組。該函數遍歷數組並在另一個方法中使用這些值。dojo.deferred和for循環
也能正常工作數組中的第一個值,那麼所有其他項目」我得到一個錯誤:‘這種延期已經得到解決’。
我想結束一個響應數組,它現在停止後1響應?
任何幫助? 謝謝!
function showQueryResults(searchResults){
function getFacIds(arr){
var def = new dojo.Deferred();
for (var i = 0, iLen = arr.features.length; i < iLen; i++) {
findParams.searchText = searchResults.features[i].attributes.ID;
findTask.execute(findParams, function(response){
def.callback(response);
});
};
return def;
};
getFacIds(searchResults).then(function(result){
console.log(result);
});
}
由於某種原因在陣列中的第一項之後的for循環將停止,所以我用dojo.forEach(ARR,函數(條目,i)的{ ......不過,我=== arr.length不起作用,因爲我不是爲了0,2,3 - > def.callback被激發,但有1項以上 – dan 2012-08-16 16:18:59
@丹 - ?啊,是的,這個代碼中有大約3個錯誤,編輯過的代碼也沒有經過測試,但希望它更好,新的代碼按照數組長度進行檢查,但不按順序返回結果,如果你關心結果順序,可以使用'results [ index] = r;'而不是'push'。 – McDowell 2012-08-16 17:14:18