我目前使用$ Q服务的角度来进行API调用是这样的:
var deferred = $q.defer();
$http.get(config.apiHost + details.url)
.success(function (data) {
deferred.resolve(data);
}).error(function (msg) {
deferred.reject(msg);
});
return deferred.promise;
但我们也还可以用这种方法不使用$问:
return $http.get(config.apiHost + details.url)
.success(function (data) {
return data;
}).error(function (msg) {
return msg;
});
和$ HTTP本身返回的诺言,我也可以用更简单的方法:
$http.get(config.apiHost + 'posts')
.success(function (data) {
console.log(data)
}).error(function (msg) {
console.log(msg);
});
那么所有这些特别是$ q和$ http之间有什么区别,因为两者都返回promise,并且都是异步?角度提供$ q的一些额外的功能? 我无法找到任何好的答案。
您可以使用$ q返回其他异步操作的承诺。 $ http从AJAX调用中返回一个承诺。 – Hoyen
其他操作如? –
就像阅读文件或如果您需要使用$ timeout – Hoyen