我在我的服务功能:
function getUsers() {
return $q((resolve, reject) => {
$timeout(() => {
let flag = true;
flag ? resolve(users) : reject("Error Users");
}, 2000);
});
}
,并根据$http
服务
function getExampleResponse() {
return $http
.get("./example.json");
}
我知道$http.get
应该返回承诺getExampleResponse()
。在我的控制器我有下面的代码:
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
回调在一个情况下,我都想要的对象,在其他情况下,我开始有承诺。哪里不对?
这是不太可能的。因为[$ http基本上返回$ q promise](https://github.com/angular/angular.js/blob/v1.5.8/src/ng/http.js#L964)。普拉克会有所帮助。 – estus
阅读[这](http://blog.ninja-squad.com/2015/05/28/angularjs-promises/)建议HttpPromises(什么$ http等返回)是不一样的$ q promises - 似乎你想要返回$ http.get(“./ example.json”)。然后(response => response.data);' –
@JaromandaX,谢谢!它帮助我 –