我有一个foo发出Ajax请求的函数.我怎样才能从中回复foo?
我尝试从success回调中返回值,并将响应分配给函数内部的局部变量并返回该变量,但这些方法都没有实际返回响应.
function foo() {
var result;
$.ajax({
url: '...',
success: function(response) {
result = response;
// return response; // <- I tried that one as well
}
});
return result;
}
var result = foo(); // It always ends up being `undefined`.
Run Code Online (Sandbox Code Playgroud) 我刚刚开始使用node.js. 我做了一些ajax的东西,但没有太复杂,所以回调仍然是我的头脑.我看了异步,但我需要的是按顺序运行一些函数.
我基本上有一些东西从API中提取一些JSON,创建一个新的,然后用它做一些事情.显然,我不能只运行它,因为它一次运行所有内容并且有一个空的JSON.大多数进程必须按顺序运行,但是如果从API中提取JSON,它可以在等待时拉出其他JSON然后就可以了.我把回调放在一个循环中时感到很困惑.我该怎么处理索引?我想我已经看到一些在循环中使用回调的地方作为一种递归函数,并且根本不使用for循环.
简单的例子会有很大帮助.
例如,我有一个功能:
var f1 = function(arg) {
var a;
$.ajax({
...
success: function(data) {
a = f2(data);
//return a;
}
});
//return a;
}
var f3 = function() {
a = f1(arg);
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能返回aAJAX后得到data的f1?