我有这返回的jQuery推迟称为AJAX对象功能的阵列phoneAjaxCalls
。 我的代码推向一个调用的函数多次调用newPhone
接受两个参数。
function newPhone(tlcPhone, studentsdcid) {
//Create new email
return $j.ajax({
type: 'POST',
url: '/admin/changesrecorded.white.html',
data: tlcPhone
});
}
我尝试将呼叫添加newPhone
到phoneAjaxCalls
使用此代码,
phoneAjaxCalls.push(newPhone(tlcPhone, stagingFormPhone.studentsdcid));
再后来在我的代码,我使用
$.when.apply($j, phoneAjaxCalls).done(function () {
//all phoneAjaxCalls MUST be complete before this code runs
//Redirect to a different page by changing window.location
});
解决jQuery的deferreds的阵列。
通过使用DevTools断点,我发现的,而不是调用newPhone
时$.when
被调用,但是当.push
被调用。
我怎样才能加入通话newPhone
到phoneAjaxCalls
阵列而不会被立即叫什么名字?
我看到的错误是,该页面被重定向所有的呼叫前phoneAjaxCalls
就可以完成。
如果你想看到我的整个代码库,可以看出这里 。 这是可怕的乱七八糟的,因为它是一个匆忙的项目。 任何其他反馈意见是值得欢迎的还有,在这里或在Github。 有问题的文件中可以找到这里 。