我是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');
});
有人可以向我解释我该怎么做吗?
答案 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);
});