AngularJS 函数返回带有所需参数的 Promise

标签 angularjs angular-promise

简单的问题。 我已经构建了这个功能:

// 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/

相关文章:

javascript - AngularJS - 外部模板

javascript - Angular ngMessages 对模糊的验证取消了链接/按钮点击

javascript - angularjs 处理 $resource $promise 错误

javascript - 解决 AngularJS 中的多个 Promise

angularjs - 如何从基于回调的 API 创建 AngularJS Promise

javascript - 为一个(部分)网页实现不同的布局

AngularJS:处理语言文件的最佳方式

javascript - 即使为该输入隐藏了 ng-show(相同的 ng-model),angular 中的输入类型编号也会产生错误

javascript - 等待 Angular Factory 资源调用在 for 循环内完成

json - 使用 Angular2 Promise 从 JSON 获取数据