2017-05-14 76 views
0

我不知道我跟到底如何推遲,承諾和$.when()工作。我已經通過https://api.jquery.com/jquery.when/閱讀,但我很好奇是否有一個Ajax調用的函數可以在$.when()內部使用。

我看到的文檔在這個例子:

$.when($.ajax("test.aspx")).then(function(data, textStatus, jqXHR) { 
    alert(jqXHR.status); // Alerts 200 
}); 

這也是一個可以接受的方法?

$.when($.ajax(anotherFunction())).done(
//on completion of the ajax call inside "anotherFunction()" do something here. 
); 

anotherFunction(){$.ajax...do some ajax stuff here.} 

我期待在加載可用儀表盤的列表中選擇特定的情況下,那麼一旦列表中填充在前端,捕獲特定的儀表盤淘汰之列,並運行一個負載的功能吧。

我發現它不會中斷並運行(也許?),但我不知道它是否是正確的方式來編寫它,或者它只是不工作,並沒有在同一時間打破。

感謝有這方面的建議和專業知識!

-Jeff

+0

'$ .when'是rendandant製作一個Ajax調用......只是做第二次在第一個回調時所需要的數據可用 – charlietfl

回答

0

[...]如果具有AJAX調用的功能可以在$。當內部使用()。如果你跳過周圍$.ajax

你的榜樣將工作和函數本身返回$.ajax -call。如果你正在傳遞到$.when不是遞延(在你的情況下,函數返回undefined),它會立即解決,我認爲是不是你想要的。此外,當你只有一個延期時,$.when是毫無意義的。如果你的功能將返回$.ajax,你可以做一些像anotherFunction().done(...)

我期待在加載可用儀表盤的列表中選擇特定的情況下,那麼一旦列表中填充在前端

事實上,這背後$.when想法:等待多個遞延完成。您可以將它們作爲參數傳遞給

let d1 = $.ajax(...); 
let d2 = $.ajax(...); 

$.when(d1, d2).done(...) 

但是如果你只有一個ajax調用,你將不需要0​​。

+0

但OP是詢問依賴Ajax調用,而不是串行 – charlietfl

相關問題