现在网上所有关于 Promise 的内容都说,除了 Angular.js 上的文档/示例之外,在使用 Promise 时不要使用 defer。
在不使用 defer 的情况下返回 angular.js $promise 的值的正确方法是什么?
这是我目前拥有的:
function foo() {
var deferred = $q.defer();
userService.findProgramsByUser({personId: personId}).$promise
.then(function (programs) {
deferred.resolve(programs);
});
return deferred.promise;
}
如果我使用 Node Q 库,我会这样做:
function foo() {
return Q.promise(function(resolve, reject) {
userService.findProgramsByUser({personId: personId})
.then(function (programs) {
resolve(programs);
});
}
}
如何在不使用 defer 的情况下使用 Angular Promise 做类似的事情?
最佳答案
由于 userService.findProgramsByUser()
已经有一个 Promise 属性,只需返回该属性即可
function foo() {
return userService.findProgramsByUser({personId: personId}).$promise
.then(function (programs) {
return programs;
}, function(){
// handle errors
});
}
关于javascript - Angular $promise 不使用 defer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32872795/