简单的问题。 我已经构建了这个功能:
// Gets the kit by id or slug
var _getKit = function (id) {
// Try to get our kit using our shared service
return sharedKitService.get(id).then(function (response) {
// Assign the response to our service
service.models.kit = response;
// Return our response
return response;
})
};
我想向该函数添加一个检查,如下所示:
// Gets the kit by id or slug
var _getKit = function (id) {
// If we have no id, exit the function
if (!id)
return;
// Try to get our kit using our shared service
return sharedKitService.get(id).then(function (response) {
// Assign the response to our service
service.models.kit = response;
// Return our response
return response;
})
};
但我知道这行不通,因为如果没有 id 那么该函数将不再产生 promise 。 我知道我可以做这样的事情:
// Gets the kit by id or slug
var _getKit = function (id) {
// If we have no id
if (!id) {
// Defer our promise
var deferred = $q.derfer();
// Reject our promise
deferred.reject();
// Return our promise
return deferred.promise;
}
// Try to get our kit using our shared service
return sharedKitService.get(id).then(function (response) {
// Assign the response to our service
service.models.kit = response;
// Return our response
return response;
})
};
但这似乎有点矫枉过正。 有没有更简单的方法来做到这一点?
最佳答案
来自Angular docs :
只需返回$q.reject(reason)
。
这将返回 Promise,该 Promise 会立即被拒绝
关于AngularJS 函数返回带有所需参数的 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35460711/