我想調用一些像這樣的異步函數。爲什麼在案例A和案例B中我失敗了,但是在案例C中成功了?這些模式jquery守護呼叫有什麼區別?
情況A
firstCall()// try to get esstential parameters(a defered)
.fail(function(){
//failed :call login function again wait user to input login credential(also a defered)
})
.always(function() {
//show welcome message
})
在這種情況下失效時剛開始執行時,始終只是部分執行,而無需等待。
情況B
firstCall()// try to get esstential parameters(a defered)
.fail(function(){
//failed :call login function again wait user to input login
})
.done(function() {
//show welcome message
})
在這種情況下,如果失敗,部分得到執行,但做部分從未得到執行。
案例C
firstCall()// try to get esstential parameters(a defered)
.then(null,function(){
//failed :call login function again wait user to input login
})
.always(function() {
//show welcome message
})
在這種情況下,then
部分充當故障部分,始終then
結束後可以運行。
我不知道爲什麼會發生這種情況。有人可以進一步解釋嗎?謝謝
是什麼'新華美通()'返回?什麼版本的jQuery? – charlietfl