Javascript 函数返回异步响应
就像一个人在这里被问到的(但他的解决方案是调用另一个函数)…我想知道是否有可能有一个函数在异步请求响应时不调用第二个函数,而只是在异步请求响应时返回 像这样的可能:Javascript 函数返回异步响应,javascript,jquery,ajax,asynchronous,Javascript,Jquery,Ajax,Asynchronous,就像一个人在这里被问到的(但他的解决方案是调用另一个函数)…我想知道是否有可能有一个函数在异步请求响应时不调用第二个函数,而只是在异步请求响应时返回 像这样的可能: function callToFacebook() { var fbResponse; FB.api('/me', function (response) { fbResponse = response; }); return fbResponse; //Will return u
function callToFacebook() {
var fbResponse;
FB.api('/me', function (response) {
fbResponse = response;
});
return fbResponse; //Will return undefined because CallToFacebook is async
}
如果不调用另一个函数,这是不是有可能呢
我试图实现的是使用一些参数调用一个函数,它将从异步Web服务(如FB)返回响应
对象。No,这是不可能的
不能返回从异步操作返回的值
想想看,你告诉10个人进行一英里赛跑比赛,他们现在开始,将在一分钟内完成+-,但你想知道答案,除非你作弊,否则这是不可能的…不,这是不可能的
不能返回从异步操作返回的值
想想看,你告诉10个人进行一英里赛跑比赛,他们现在开始,将在一分钟内完成+-,但你想知道答案,除非你作弊,否则这是不可能的…简而言之,不。你不能让异步函数同步返回有意义的值,因为该值当时不存在(因为它是在后台异步构建的)
但是,您可以返回一个对象,表示异步操作的“潜在返回值”,并使用或类似方法将函数绑定到该对象。这样,您的函数将获得返回语义(而不必将控制流链接到回调中),并保持异步。简而言之,不可以。您不能让异步函数同步返回有意义的值,因为该值当时不存在(因为它是在后台异步构建的)
但是,您可以返回一个对象,表示异步操作的“潜在返回值”,并使用或类似方法将函数绑定到该对象。这样,您的函数将获得返回语义(而不必将控制流链接到回调中),并保持异步。如果可能,这将作为答案给出。如果可能,这将作为答案给出。我只希望函数等待响应,“既不是猜测也不是欺骗。”肯尼思说。所以答案是这是不可能的,我只希望函数等待响应,而不是猜测或欺骗。@KennethB。所以答案是这是不可能的,你能在jsfiddle plz中给出一个例子吗?你能在jsfiddle plz中给出一个例子吗