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的精彩文章