小编典典

函数返回异步响应

ajax

就像一个人在这里问到但他的解决方案是调用其他函数
…我想知道是否有可能拥有一个不调用a的函数第二个功能基于return异步请求的响应,但仅当异步请求响应时。

可能是这样的:

function callToFacebook() {
    var fbResponse;

    FB.api('/me', function (response) {
        fbResponse = response;
    });

    return fbResponse; //Will return undefined because CallToFacebook is async
}

不调用另一个函数,这有可能吗?

我要实现的目标是拥有一个可以用一些参数调用的函数,该函数将返回object异步Web服务(如FB)的响应。


阅读 209

收藏
2020-07-26

共1个答案

小编典典

简而言之,没有。您不能让异步函数同步返回有意义的值,因为该值当时不存在(因为它是在后台异步构建的)。

但是,您可以返回一个Promise对象,表示异步操作的“潜在返回值”,并使用done()或类似方法将一个函数绑定到该对象。这样,您的函数将获得返回语义(而不是必须将控制流链接到回调中),并保持异步。

2020-07-26