如何从发出异步请求的函数 foo 返回响应/结果?我正在尝试从回调中返回值,并将结果分配给局部变量...
如何从 foo
发出异步请求的函数返回响应/结果?
我试图从回调中返回值,以及将结果分配给函数内部的局部变量并返回该变量,但这些方法实际上都没有返回响应 - 它们都返回 undefined
变量的初始值 result
。
接受回调的异步函数示例 (使用 jQuery 的 ajax
函数):
function foo() {
var result;
$.ajax({
url: '...',
success: function(response) {
result = response;
// return response; // <- I tried that one as well
}
});
return result; // It always returns `undefined`
}
使用 Node.js 的示例:
function foo() {
var result;
fs.readFile("path/to/file", function(err, data) {
result = data;
// return data; // <- I tried that one as well
});
return result; // It always returns `undefined`
}
使用 Promise 的 then 块的示例:
function foo() {
var result;
fetch(url).then(function(response) {
result = response;
// return response; // <- I tried that one as well
});
return result; // It always returns `undefined`
}