我的项目中有以下代码,我希望它有效。
var retrieveUpdates = function (hash) {
myFunction(data)
.then(function(filters){
return Restangular.all('retrieveUpdates').post({ filters });
});
};
但当然这会失败,因为在此之前会发生回归。我可以修理"它似乎很难看(特别是当这种情况到处都是这样的时候)。
var retrieveUpdates = function (hash) {
var defer = $q.defer();
myFunction(data)
.then(function(filters){
Restangular.all('retrieveUpdates').post({ filters }).then(defer.resolve, defer.reject);
});
return defer.promise;
};
有更简洁的方法吗?
答案 0 :(得分:3)
您在第一个示例中没有返回任何内容,只需返回myFunction
var retrieveUpdates = function (hash) {
return myFunction(data)
.then(function(filters){
return Restangular.all('retrieveUpdates').post({ filters });
});
};
答案 1 :(得分:0)
var retrieveUpdates = function (hash) {
return $q(function(resolve, reject){
myFunction(data)
.then(function(filters){
return Restangular.all('retrieveUpdates').post({ filters }).then(resolve, reject);
});
});
};
答案 2 :(得分:0)
你试过吗
var retrieveUpdates = function (hash) {
return myFunction(data)
.then(function(filters){
return Restangular.all('retrieveUpdates').post({ filters });
});
};
这是承诺的共同模式,承诺,总是返回承诺