我创建了一个函数,成为Telegram用户帐户中所有聊天的所有成员(但这个条件并不重要)。在函数中发送聊天ID列表。函数apiFunctionForRequestMembersListOfChats通过angular.forEach将每个聊天ID的请求发送到服务器并返回此聊天成员的列表。此列表将添加到成员列表中。所有成员列表都从函数返回到程序。
function getAllMembers(chatsID) {
var members = [];
angular.forEach(chatsID, function(chatID) {
apiFunctionForRequestMembersListOfChats(chatID).then(function(chat_members) {
angular.forEach(chat_members, function(member) {
members.push(member);
alert("current members count: " + members.length);
})
};
}); alert("all members count: " + members.length);
return members;
}
}
但是当API函数完成并返回空的成员列表时,Javascript,而不是等待。我成了这个提醒:
所有成员都数:0 现任成员人数:7 现任成员人数:42 现有成员人数:59
make函数如何等待所有api请求并返回完整的成员列表?
答案 0 :(得分:0)
function getAllMembers(chatsID) {
var members = [];
var promise = [];
angular.forEach(chatsID, function(chatID) {
promise.push(new Pormise((resolve,reject)=>{
apiFunctionForRequestMembersListOfChats(chatID).then(function(chat_members) {
angular.forEach(chat_members, function(member) {
members.push(member);
// alert("current members count: " + members.length);
})
resolve(member);
});
}));
})
return $q.all(promise);
}
}
它应该按照要求工作,最后你会得到所有请求,并在成员计数响应尝试控制台,当你调用这个方法时,你会更清楚。如果你还有任何疑问,请告诉我。