我有一个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) 我将从代码开始:
var s = ["hi"];
console.log(s);
s[0] = "bye";
console.log(s);
Run Code Online (Sandbox Code Playgroud)
简单吧?对此,Firebug说:
["hi"]
["bye"]
Run Code Online (Sandbox Code Playgroud)
很棒,但Chrome的JavaScript控制台(7.0.517.41 beta)说:
["bye"]
["bye"]
Run Code Online (Sandbox Code Playgroud)
我做错了什么,或者Chrome的JavaScript控制台在评估我的阵列方面特别懒惰?
当我在javascript中对数组执行操作时,console.log将数组显示为在对数组执行操作之前已经更改.我可以在chrome和firefox中重现这个.有谁知道这是为什么?
var myTabs = [[0,0,0],
[0,0,0],
[0,0,0],
[0,0,0]];
console.log(myTabs);
myTabs[0].splice(1, 1);
console.log(myTabs);
Run Code Online (Sandbox Code Playgroud)
请参阅此代码: