我想創建約10個XML HTTP請求,如下所示。我想使用i
作爲第一個「子女」參考的值,但如果i
在執行回調之前發生變化,則i
的值與「結果」選項卡中的網址不匹配。我怎麼概括這個?javascript回調函數的泛化
var i = 1;
WinJS.xhr({
url: root.results[i].profile_image_url_https,
responseType: 'blob'
}).done(function (result) {
var imgTag = theDiv.children[1].children[0];
var imageBlob = URL.createObjectURL(result.response, {
oneTimeOnly: true
});
imgTag.src = imageBlob; //tempLocalUrl;
});
i = 2;
WinJS.xhr({
url: root.results[i].profile_image_url_https,
responseType: 'blob'
}).done(function (result) {
var imgTag = theDiv.children[2].children[0];
var imageBlob = URL.createObjectURL(result.response, {
oneTimeOnly: true
});
imgTag.src = imageBlob; //tempLocalUrl;
});
這是Javascript中常見的範圍界定問題。它通常是通過引入一個新的範圍層來解決的,那麼你的實際代碼是否實現了一個循環而不是重複調用'xhr()'?另外,您的最終目標是鏈接請求還是並行執行所有請求? –
我是否依賴於哪個訂單發送請求或訂單完成? – EricG
'i'不在回調中使用,只能在立即發生的'.url'分配中使用。所以我沒有看到你的異步行爲。 – Yoshi