【发布时间】:2016-02-24 04:03:22
【问题描述】:
我正在使用超媒体 API 设计一个带有 angular 和 $http 服务的 API 客户端。由于我拥有相互叠加的资源,因此我希望客户端用户能够以声明方式执行此操作:
apiRoot
.getPeopleRoot()
.getPerson(1)
.addJob(apiRoot.getJobsRoot().getRandomJob())
.updatePerson()
但我也希望能够利用$then 方法来使用中间结果:
$scope.job = apiRoot.getJobsRoot().getRandomJob()
apiRoot.getPeopleRoot().getPerson(1).then(function (person) {
$scope.person = person
}).addJob($scope.job).updatePerson()
我设法通过返回 promise 或包含操作这些资源的函数的对象来分别完成其中的每一项,但我不确定如何同时实现这两者,或者它是否很好想法。
编辑:我设法在我的资源对象中使用了以下 mixin
function Actualizable() {}
Actualizable.prototype.actual = function (value) {
this.realizedValue = value
return this
}
然后检查我是否已经解决了每个函数的值或调用了一个承诺来实际解决它。我不确定是否还有一种机制可以通过承诺来做到这一点。
【问题讨论】:
标签: angularjs promise angular-promise