在Javascript中将函数作为参数传递时返回值
我有一些javascript代码,当我将一个对象传递给一个方法时,这些代码可以正常工作。在中,它表示我还可以将函数传递给该方法。当我尝试此操作时,我能够传递参数并发出警报以验证是否传递了参数。但是,我无法返回该值 要正确返回值,我缺少哪一行javascript在Javascript中将函数作为参数传递时返回值,javascript,Javascript,我有一些javascript代码,当我将一个对象传递给一个方法时,这些代码可以正常工作。在中,它表示我还可以将函数传递给该方法。当我尝试此操作时,我能够传递参数并发出警报以验证是否传递了参数。但是,我无法返回该值 要正确返回值,我缺少哪一行javascript var result = {model: "todo"}; //$httpBackend.whenGET(/^\/api\//).respond(result); $httpBackend.whenGET(/^\/api\//).res
var result = {model: "todo"};
//$httpBackend.whenGET(/^\/api\//).respond(result);
$httpBackend.whenGET(/^\/api\//).respond(do_something);
function do_something(method, url, data) {
alert("url "+url); // or whatever
var result = {model: "todo"};
return result;
}
//From the API documentation
// $httpBackend.whenGET('/.*/').respond(function(method, url, data) {
// do something
//});
据推测,该函数的返回值将被忽略。当然,它没有在您当前的代码中使用 您需要让该函数影响作用域在函数本身之外的变量:
var result;
$httpBackend.whenGET(/^\/api\//).respond(do_something);
// Do something with `result`...
alert(result.model); // or whatever
function do_something(method, url, data) {
alert("url "+url); // or whatever
result = {model: "todo"};
}
您使用的是哪种API?该值将返回给调用函数
do\u something
的任何函数。这不是您的代码,而是中的任何内容。响应。如果该函数不返回回调的值(可能是因为它似乎是一个异步调用),则无法获取返回值;工作正常。我正在使用此API。这仅在$httpBackend.whenGET(/^\/api\/).response(做某事)时有效
是同步的(看起来不是这样,但我不知道API)。@FelixKling:一个公平的观察。我希望OP能把我们遗漏的细节补上。