我已经在我的javascript函数中发布了一系列延迟的'然后在我的javascript函数中。
在JQuery 1.7.2中,我能够创建类似于以下示例的内容,从每个示例中传递参数以确定是否继续。
myAjaxFunction(myParametersObject)
.done(function (noErrors) {
if (anyErrors == true) {
// call ajax routine
return true;
} else {
//stop code execution
return false;
}
})
.then(function (noErrors) {
if (anyErrors == true) {
// call ajax routine
return true;
} else {
//stop code execution
return false;
}
})
.then(function (noErrors) {
if (anyErrors == true) {
// call ajax routine
return true;
} else {
//stop code execution
return false;
}
})
.then(function (noErrors) {
if (anyErrors == true) {
// final code here
}
});
它在JQuery 1.7.2上运行得很好,但我正在开发一个需要JQuery 1.11.1的项目,这不再适用。
如何将参数传递给即将到来的'然后'在JQuery 1.11.1中?
答案 0 :(得分:1)
返回来自myAjaxFunction
的jQuery promise值似乎在noErrors
处理程序参数参数
done
.done(function (noErrors) {
<{1>在.done
处理程序中为anyErrors
?
if (anyErrors == true) {
同样
.then(function (noErrors) {
if (anyErrors == true) {
// call ajax routine
尝试设置与参数相同的参数并在处理程序中设置.e.g。 anyErrors
var dfd = $.Deferred().resolve(true);
dfd.done(function (anyErrors) {
if (anyErrors == true) {
// call ajax routine
return true;
} else {
//stop code execution
return false;
}
})
.then(function (anyErrors) {
if (anyErrors == true) {
// call ajax routine
return true;
} else {
//stop code execution
return false;
}
})
.then(function (anyErrors) {
if (anyErrors == true) {
// call ajax routine
return true;
} else {
//stop code execution
return false;
}
})
.then(function (anyErrors) {
if (anyErrors == true) {
// final code here
document.body.textContent = anyErrors;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
jsfiddle http://jsfiddle.net/zr5rzb7v/1/
答案 1 :(得分:0)
如果您先使用然后再使用,则可以使用它:
var request = $.ajax( url, { dataType: "json" } ),
chained = request.then(function( data ) {
return $.ajax( url2, { data: { user: data.userId } } );
});
chained.done(function( data ) {
// data retrieved from url2 as provided by the first request
});
请参阅官方jquery api文档:http://api.jquery.com/deferred.then/#deferred-then-doneFilter-failFilter-progressFilter