就像一个人在这里问到但他的解决方案是调用其他函数 …我想知道是否有可能拥有一个不调用a的函数第二个功能基于return异步请求的响应,但仅当异步请求响应时。
return
可能是这样的:
function callToFacebook() { var fbResponse; FB.api('/me', function (response) { fbResponse = response; }); return fbResponse; //Will return undefined because CallToFacebook is async }
不调用另一个函数,这有可能吗?
我要实现的目标是拥有一个可以用一些参数调用的函数,该函数将返回object异步Web服务(如FB)的响应。
object
简而言之,没有。您不能让异步函数同步返回有意义的值,因为该值当时不存在(因为它是在后台异步构建的)。
但是,您可以返回一个Promise对象,表示异步操作的“潜在返回值”,并使用done()或类似方法将一个函数绑定到该对象。这样,您的函数将获得返回语义(而不是必须将控制流链接到回调中),并保持异步。