javascript で実行される順序を理解するのに苦労しています... Java で慣れ親しんだ順序に完全に従っていないようです。誰かが正しい順序を強制する方法を提案できますか?
getRegisteredUsersList を最初に完了する必要があります。これにより、getAllUsersActivityCount
に配列である最初の引数が提供されます。
getAllUsersActivityCount
次に、その配列の各要素に対して、それを実行したいと思いcountActivitiesForUser
ます。残念ながら、これは期待どおりに機能しません。
次の方法があります。
$scope.count = function(){
var result = getAllUsersActivityCount(getRegisteredUsersList(),4);
return result;
};
getRegisteredUsersList = function(){
var url = "MY QUERY URL THAT RETURNS ARRAY OF USERS";
$http.get(url).success(
function(data, status, headers, config) {
return data;
}
);
};
getAllUsersActivityCount = function(usersList,type){
var sdf = new JsSimpleDateFormat("MMM d, yyyy");
var date = sdf.format(new Date());
var returnArray = [];
for(var i=0;i<usersList.length;i++){
var userid= usersList[i].userid;
var name= usersList[i].name;
returnArray.push({userid: userid, name: name, count: countActivitiesForUser(userid,type,date)});
}
return returnArray;
};
$scope.countActivitiesForUser = function(userid,type,date){
var url = "MY QUERY URL THAT RETURNS SINGLE NUMBERICAL VALUE";
$http.get(url).success(
function(data, status, headers, config) {
return data;
}
);
};