好吧,我可能错过了一些明显的东西,虽然我试图找到一个类似的例子,但我找不到一个和我想要做的很像的事情。我需要一系列的ajax调用以特定的顺序运行。我使用下面的代码来完成交易:jQuery推迟链接问题
showStandbyDialog();
$.when(function(){console.log('Paying Charges due before transaction');})
.always(this.applyCredit(parseFloat($(this.currentChargesTarget).html()))) // Pay charges due before transaction
.always(function(){console.log('Applying renewals');})
.always(this.applyRenewals()) // Apply Renewals
.always(function(){console.log('Paying renewal charges');})
.always(this.applyCredit(this.renewCart.length * this.renewCost)) // Pay renewal charges
.always(function(){console.log('Applying checkouts');})
.always(this.applyCheckOut()) // Apply checkouts
.always(function(){console.log('Paying checkout charges');})
.always(this.applyCredit(this.cart.length * this.checkOutCost)) // Pay checkout charges
.always(function(){console.log('Applying card replacement');})
.always(this.applyCardReplacement()) // Apply card replacement
.always(function(){console.log('Paying leftover charges');})
.always(this.applyCredit(this.cardCost)) // Pay leftover charges
.always(function(){console.log('Finalizing Transaction');})
.always(function(){ updateCharges(); bfwd.Patron.Transaction.reset(); hideStandbyDialog(); }); // Reset Transaction and clear standby dialog
现在我都试过了,.done,。那么,只是约.anything(),但在手柄功能的console.log()代码this.applyCredit()总是在console.log('Finalizing Transaction')之后记录日志。如果您想知道,每个this.function()调用都会返回一个jquery延迟方法。
你调用的是异步的函数吗?否则,没有理由使用延期。只需创建一个函数,以直接程序编程的适当顺序调用所有这些其他函数。如果它们是异步的,那么向我们展示它们的代码,以便大家可以评估您是否正确使用了延期API。 – jfriend00
他说这是一系列的ajax调用,所以我只是假设... –
对不起,没有注意到这些意见。我想这不会发布代码。 1秒。 – LordZardeck