gapi.client.load('myapi1', 'v1', function() {
        gapi.client.load('myapi2', 'v1', function() {
             gapi.client.load('myapi3', 'v1', function() {
               $rootscope.$broadcast("All loaded")
             }, '/_ah/api');
            }, '/_ah/api');
        }, '/_ah/api');


现在,这些api会一次又一次地加载。我希望它们以异步方式加载,并且在加载所有API后,我要广播该消息。可能吗。如果是,怎么办?

一个例子会很有帮助

最佳答案

您可以像这样尝试smt:

 call_1 = gapi.client.load('myapi1', 'v1', function() {}, '/_ah/api');
 call_2 = gapi.client.load('myapi2', 'v1', function() {}, '/_ah/api');
 call_3 = gapi.client.load('myapi3', 'v1', function() {}, '/_ah/api');

$q.all([call_1, call_2, call_3]).then(function() {
  $rootscope.$broadcast("All loaded");
}


$ q服务将等待所有呼叫结束,然后广播您的味精。

希望能帮助到你。

另外,我还会阅读$q docs和有关callbackhell的精彩文章

10-06 07:58
查看更多