完成后角度运行

时间:2015-03-13 11:10:08

标签: angularjs promise

我是Angular的新手,所以这对大多数人来说都很容易。 我有一个功能的服务:

.factory('HttpHandler', function () {
    return {
        loadData: function (promise) {
            var self = {
                data: [],
                loading: true,
                promise: promise
            };

            promise.then(function (data) {
                self.data = data;
                self.loading = false;
            });

            promise.finally(function () {
                self.loading = false;
            });

            return self;
        }
    };
});

我想要的是,在成功完成之后能够运行其他东西。 Seudo代码:

var result = httpHandler.loadData(httpCall, function (complete) {
    console.log('this has completed');
});

有人可以向我解释我该怎么做吗?

1 个答案:

答案 0 :(得分:1)

在不更改httpHandler的情况下,这是您可以接近代码中描述的行为的最接近的内容:

var resultPromise = httpHandler.loadData(httpCall)
                      .promise
                      .then(function (complete) {
                          console.log('this has completed.')
                      });

但是,您可能希望单独保存httpHandler.loadData(httpCall)的结果以使用其中的其他属性:

var result = httpHandler.loadData(httpCall);
result.promise.then(function () {
    console.log('this has completed: ', result.loading, 
                ' with data: ', result.data);
});