将 Restangular 与承诺一起使用(延迟)

Using Restangular with promises (deferred)

在我的应用程序中,我使用的是 restangular,并且我有这样的方法(我从普通的 $http 请求转换而来)。 而且我不知道如何正确使用 restangular with promises。怎么可能?

这是我的代码:

var test = function(){
var data = '{"Office":"' + office + '"}';
var deferred = $q.defer();
var person = Restangular.one('persons', id)
$scope.person.patch(data).then(function (response) {
  deferred.resolve(response);
},function (err, status) {
  deferred.reject(status);
});
return deferred.promise;
}


var runIt = function(){
    test.then(...)...
}

您可以简单地使用 Restangular.onepatch 方法返回的承诺,而不是创建新的自定义承诺。

代码

var test = function() {
    var data = '{"Office":"' + office + '"}';
    var person = Restangular.one('persons', id);
    //returned promise
    return person.patch(data).then(function(response) {
        return response.data; 
    }, function(err, status) {
        return response.status;
    });
}

test().then(...)