我有一个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) 使用严格模式的FireFox时出现此错误.但我不确定这意味着什么.我认为这意味着函数必须在调用之前声明,但错误仍然存在.
SyntaxError:在严格模式代码中,函数可以仅在顶层声明,也可以在另一个函数中立即声明
这是我的代码片段,它导致错误:
var process = new function(){
var self = this;
self.test = function(value,callback){
var startTime = Date.now();
function update(){ //<--- error is here
value++;
startTime = Date.now();
if(value < 100){
setTimeout(update, 0);
}
callback(value);
}
update();
}
};
Run Code Online (Sandbox Code Playgroud)
所以我想知道如何用严格的方法正确编写这段代码?顶级是什么意思?这是指全局定义而不是函数中的本地定义?
另外,我知道use strict为什么Chrome中不会出现此问题?