0
我有一個異步函數,不應該執行另一個異步請求,直到前一個完成。順序化異步函數調用與WinJS.Promise
pendingCatalogRequest = WinJS.Promise.as();
loadCatalogAsync = function(name) {
var loadAsync = function() {
return getXmlAsync("catalogdata/" + name);
}
return pendingCatalogRequest = pendingCatalogRequest.then(loadAsync, loadAsync);
}
這是處理這個問題的正確方法嗎?或者我錯過了什麼?
當loadCatalogAsync
函數剩下時,loadAsync
會關閉垃圾回收嗎?
>考慮拒收會發生什麼 - 他們會阻止你的整個隊列。你可能想要抓住他們的排隊承諾。 我不趕上他們的錯誤處理程序? >請參閱這裏獲取更完整的示例。 不幸的是這個例子不是WinJS。 – philk
糟糕,我一定錯過了你的錯誤處理程序。當你將jQuery的'$ .when()'交換到'WinJS.Promise.as()'時,鏈接的代碼應該可以工作,其餘的與實現無關。 – Bergi
仍然看不到你的代碼與我的不同嗎?你能解釋一下嗎? – philk