3

使用期望传递给它的查询字符串/参数的资源来处理 Angular.js 中的承诺的最佳方法是什么?我已经看到在工厂、控制器和路由器中处理了 $q 的工作,但我不确定在涉及参数的任何情况下如何处理它。
所以如果这是工厂:

angular.module(Animals, ['$resource', '$route', '$location', function($resource, $route, $location) {
  return $resource('http://thezoo.com/animals', { query: {method: 'GET', isArray: true}});
}]);

这是控制器:

Animals.query({size="med",gender='f'});

那么应该如何最好地使用 Promise 来处理呢?调用外部资源可能需要很长时间。

4

2 回答 2

3

Really late to the party, but I found this page from Google. If you want to use a resource, but maybe you want to get data from your query method before you continue (maybe you're writing this in a resolve or something), you can do this.

var deferred = $q.defer();
Resource.query({params}, function (response) {
  someData = response;
  deferred.resolve(someData);
});
return deferred.promise;
于 2013-12-03T16:13:52.300 回答
1

目前尚不清楚您要完成什么。

$resource方法不会返回承诺。它们将返回空数组或在服务器返回数据时填充的对象。

如果你想要一个返回 Promise 的方法,你可以写一个$http直接使用的方法。

于 2013-08-28T13:54:58.047 回答