如何在Angularjs

时间:2017-07-15 10:06:53

标签: angularjs api

我创建了一个函数,成为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请求并返回完整的成员列表?

1 个答案:

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

它应该按照要求工作,最后你会得到所有请求,并在成员计数响应尝试控制台,当你调用这个方法时,你会更清楚。如果你还有任何疑问,请告诉我。