处理多个承诺时的最佳方法

Best aproach when dealing with mutliple promisses

我在互联网上查找,但没有看到明确的答案。所以这是我的情况:

代码是head写的,不完整请见谅 我有一个看起来像这样的页面:

<div ng-controller="myController">
    <my-customer my-callback="directiveCallback(item)" />
</div>

然后我有一个如下所示的脚本:

var app = angular.module('myApp', []);
app.controller('myController', ['$scope', 'apiService', function($scope, apiService) {

    apiResponse = apiService.getAll('myRepo');

    apiResponse.then(function(d){
     $scope.data = d;   
    })

    $scope.directiveCallback = function(item) {

        // do stuff with $scope.data
    }

  }])
  .directive('myCustomer', function() {
    return {
        scope: {
            myCallback:'&'
        },
      template: 'Name: {{customer.name}} Address: {{customer.address}}'
    };
  });

事情是服务承诺解决和 returns 一些数据。 指令控制器正在调用另一个服务 returns 一些数据,并在处理完它接收到的数据后触发回调。

当他登陆回调函数时,该项目附加到 $scope.data。

问题是在填充 $scope.data 之前触发了回调。 我目前解决了这个问题,以便通过直接参数将回调包装在 $timeout 中,并具有可设置的延迟。

这是正确的方法还是有更好的方法?

嗯,这不是很简单吗:

$scope.directiveCallback = function(item) {
  apiResponse.then(function() {
    console.log($scope.data); // always updated
    // do whatever
  })
}