Javascript 如何在AngularJS中中断/返回角度异步调用

Javascript 如何在AngularJS中中断/返回角度异步调用,javascript,angularjs,asynchronous,angular-promise,Javascript,Angularjs,Asynchronous,Angular Promise,我有以下项目结构: -PageController.js -BusinessService.js -NetworkManager.js 在我的PageController中,我有以下调用: var getSomething = this._businessService.getMeSomething().then(function(response) { alert("my response: " + response); }); 在我的商务服务中: getMeSometing: f

我有以下项目结构:
-
PageController.js

-
BusinessService.js

-
NetworkManager.js


在我的PageController中,我有以下调用:

var getSomething = this._businessService.getMeSomething().then(function(response) {
    alert("my response: " + response);
});
在我的商务服务中:

getMeSometing: function() {
    var user = this.getUserData();

    if(user) {
        var sendPromise = this._networkManager.getAnotherThing(user.id).then(function(response) {
            alert("And another response: " + response);
        });
    } else {
        $q.reject({ message: 'Rejecting this promise' });
    }
},
http调用是在
NetworkManager
类中进行的。 所以这里的问题是,当我没有用户数据时,我想中断呼叫,因此我使用
拒绝

这将返回一个错误:
无法读取未定义的
关于调用
PageController



因此,考虑到我的情况,如果我没有用户数据,我想取消请求,我如何才能做到这一点?

您的呼叫应该会返回一个承诺。如果有用户,请从
getAnotherThing
返回承诺,否则,请从
$q.reject
返回承诺

getMeSomething: function() {
    var user = this.getUserData();
    var sendPromise;
    if(user) {
        sendPromise = this._networkManager.getAnotherThing(user.id).then(function(response) {
            alert("And another response: " + response);
            // you probably want to return the data if successful (either response or response.data, depending on what response is)
            return response.data;
        });
    } else {
        sendPromise = $q.reject({ message: 'Rejecting this promise' });
    }
    return sendPromise;
}