Javascript 在ajax调用中,在.done()函数之前使用回调函数
以下是我试图实现的目标:Javascript 在ajax调用中,在.done()函数之前使用回调函数,javascript,jquery,ajax,Javascript,Jquery,Ajax,以下是我试图实现的目标: function loadLotsofSomething() { for (var i=0;i<1000;i++) { results.push(loadOneSomething(i)) } $.when.apply(this,results).done(function() { for (var i = 0; i < arguments.length; i++) { //ge
function loadLotsofSomething() {
for (var i=0;i<1000;i++) {
results.push(loadOneSomething(i))
}
$.when.apply(this,results).done(function() {
for (var i = 0; i < arguments.length; i++) {
//get doSomehting(data) instead of data here
}
}
}
function loadOneSomething(i) {
return $.ajax({
async : true,
url: url,
success: function(data){
return doSomething(data);
}
});
}
function doSomething (x) {
return x;
}
函数loadLotusSofThings(){
对于(var i=0;i您希望使用链接(就像承诺一样)。根本不要使用success
;而是使用then
并返回其结果:
function loadOneSomething(i) {
return $.ajax({
async : true,
url: url
}).then(function(data){
return doSomething(data);
});
}
这样,loadOneSomething
返回的承诺是来自then
的承诺,而不是来自$.ajax
,它的解析值是您从then
返回的承诺
更多:,.您想使用链接(就像承诺一样)。根本不要使用success
;而是使用然后使用并返回其结果:
function loadOneSomething(i) {
return $.ajax({
async : true,
url: url
}).then(function(data){
return doSomething(data);
});
}
这样,loadOneSomething
返回的承诺是来自then
的承诺,而不是来自$.ajax
,它的解析值是您从then
返回的承诺
更多:,.您的结果
变量定义在哪里?是的,success函数在$之前执行。当…完成
函数时-您的问题是对success函数缺乏理解,返回了一些东西nothing@empiric这只是一个伪代码,不是真代码deal@JaromandaX无益的评论。请解释那么success函数是如何工作的呢。@Chapo-我会更深入地探讨它,除非下面的答案是posted,您的结果变量定义在哪里?是的,success函数在$之前执行。当…完成函数时-您的问题是对success函数缺乏理解,返回的东西没有任何意义g@empiric这只是一个伪代码,不是真代码deal@JaromandaX没有帮助的评论。请解释一下成功函数是如何工作的。@Chapo-我会更深入地讨论它,除非下面的答案已经发布了