Angularjs 在我转到下面的javascript行之前,有没有办法强制履行承诺?

Angularjs 在我转到下面的javascript行之前,有没有办法强制履行承诺?,angularjs,Angularjs,我有以下代码: getData: function ( problemId) { var deferred = $q.defer(); EntityResource.getEntities({ action: "GetData", id: id }, function (resp) { deferred.resolve(resp); }); return deferred.promise; }, 我在

我有以下代码:

getData: function (
    problemId) {
    var deferred = $q.defer();
    EntityResource.getEntities({
        action: "GetData",
        id: id
    }, function (resp) {
       deferred.resolve(resp);
    });
    return deferred.promise;
},
我在这里调用此代码:

$scope.modal.data = entityService.getData(id);
但不久之后,在另一行:

$scope.modal.selected = $scope.getId($scope.modal.data.dataId);
由于我对getData的调用返回了一个承诺,因此我认为这是一个问题。有没有一种方法可以改变getData以返回数据而不是承诺,这样我就可以在后续的javascript行中使用这些数据?或者,是否有一种方法可以让我的javascript等待承诺返回。

这是
承诺的目标,或者不要使用像loadpromise这样的usync技术

将第二个方法调用到
中,然后调用
回调

var myPromise = entityService.getData(id);

myPromise.then(function(result) {
 ...
 $scope.modal.selected = result.data.dataId;
}, function(error) {
        alert(error.message);
    });

这是
承诺的目标,或者不要使用像loadpromise这样的usync技术

将第二个方法调用到
中,然后调用
回调

var myPromise = entityService.getData(id);

myPromise.then(function(result) {
 ...
 $scope.modal.selected = result.data.dataId;
}, function(error) {
        alert(error.message);
    });

是的,但我想从许多不同的地方调用getData。我可以修改getData使其不返回承诺吗?@Alan its,无论您要调用它多少次。每个调用都是异步任务并返回承诺。不用担心,只发送其他请求是的,但我想从许多不同的地方调用getData。我可以修改getData使其不返回承诺吗?@Alan its,无论您要调用它多少次。每个调用都是异步任务并返回承诺。不用担心,只需发送其他请求即可