使用 Ajax 按顺序获取数据 Angularjs

Get data with Ajax sequentially with Angularjs

我必须从 API 加载 3 个不同的东西:

其实我做的是:

var loadAll = $q.all([
    getUsers.all(),
    getGroups.all(),
    getMessages.all()
]);

loadAll.then(function (data) {
    $scope.users = data[0];
    $scope.groups = data[1];
    $scope.messages = data[2];
};

它工作正常,但不幸的是它加载用户、组和消息的顺序不是我希望的...

我想做的是加载用户,然后加载群组,最后加载消息。

我不明白如何正确地做到这一点...

我的服务return承诺:

getUsers.all()
.then(function(data) {
    $scope.users = data;
};

但如果我这样做:

getUsers.all()
.then(function(data) {
    $scope.users = data;
    getGroups.all()
    .then(function(data) {
        // etc...
    }
};

它会在用户加载后立即解决承诺,而无需等待其他...

我该怎么做?

链接按顺序加载数据集的承诺应该可行:

getUsers.all().then(function(data) {
        $scope.users = data
        return getGroups.all()
}).then(function(data) {
        $scope.groups = data
        return getMessages.all()
}).then(function(data) {
        $scope.messages = data
});

这是因为thenreturns一个承诺。