gpt4 book ai didi

javascript - 使用 Angularjs 使用 Ajax 顺序获取数据

转载 作者:行者123 更新时间:2023-11-28 06:53:14 31 4
gpt4 key购买 nike

我必须从 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];
};

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

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

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

我的服务返回 promise :

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

但如果我这样做:

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

一旦用户加载,它就会解决 promise ,而无需等待其他人......

我该怎么做?

最佳答案

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

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
});

这是因为 then 返回一个 promise 。

关于javascript - 使用 Angularjs 使用 Ajax 顺序获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32784222/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com