相关疑难解决方法(0)

如何从异步调用返回响应?

我有一个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)

javascript ajax jquery asynchronous xmlhttprequest

5208
推荐指数
38
解决办法
134万
查看次数

可以在严格模式下仅在顶级声明函数

使用严格模式的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中不会出现此问题?

javascript

5
推荐指数
1
解决办法
8919
查看次数

标签 统计

javascript ×2

ajax ×1

asynchronous ×1

jquery ×1

xmlhttprequest ×1