我的服务中有getUsers
个功能:
function getUsers() {
return $q( (resolve, reject) => {
$timeout(() => {
let flag = true;
flag ? resolve(users) : reject("Error Users");
}, 2000);
});
}
和getExampleResponse()
基于$http
服务
function getExampleResponse() {
return $http
.get("./example.json");
}
我知道$http.get
应该回报承诺。在我的控制器中,我有以下代码:
let userPromise = myService.getUsers(),
examplePromise = myService.getExampleResponse();
$q.all([userPromise, examplePromise])
.then(getAllDataSuccess)
.catch(getTasksError)
.finally(getTasksComplete);
function getAllDataSuccess(dataArray) {
console.log(dataArray[0]); // I have user object here
console.log(dataArray[1]); // I have promise object here
}
所以在then
回调后,在一个案例中我有所需的对象,在其他情况下,我继续承诺。怎么了?
答案 0 :(得分:-1)
在getUsers()
你要返回$ q。如果你想传递承诺然后返回
function getUsers() {
var d = $q.defer();
// Your code
return d.promise;
}