javascript - Run _.each inside while PARSE -
i have table named "circle" , represents mailing list. circle can contain user id in inviteduser or circle id in invitedcircle. need circles id contain specific user (in code: 1-9). example if studanta in circlea circlea in circleb need studanta output circlea , circleb.
i try find circles conect each others while , each, status of job : not connect cloud code. how can run query until no result found?
parse.cloud.job("fillmemberincircles", function (request, status) { var studentid = "123456789"; var output = []; var lowlayer = []; var highlayer = []; // circles when student appears in column invitedusers var invitedusers = new parse.query("circles"); invitedusers.equalto("invitedusers", studentid); invitedusers.find({ success: function (invitedusersresults) { if (invitedusersresults.length > 0) { (var = 0; < invitedusersresults.length; i++) { output.push(invitedusersresults[i].id); lowlayer.push(invitedusersresults[i].id); } var counter = lowlayer.length; var _ = require('underscore.js'); while (counter > 0) { //var _ = require('underscore.js'); _.each(lowlayer, function (currcircle) { var invitedcirclesquery = new parse.query("circles"); invitedcirclesquery.equalto("invitedcircles", currcircle); invitedcirclesquery.find().then(function (results) { if (results.length != 0) { // item exists (var j = 0; j < results.length; j++) { if (output.indexof(results[j].id) == -1) { output.push(results[j].id); highlayer.push(results[j].id); } } } }).then(function () { counter--; if (counter == 0) { if (highlayer.length == 0) { console.log("ok"); lowlayer = []; status.success("sucsess: " + output.length.tostring()); } else { lowlayer = highlayer; counter = lowlayer.length; highlayer = []; } } }); }); } } //status.success("sucsess: " + output.length.tostring()); }, error: function () { status.error("[fillmemberincircles] there error querymajors"); } }); });
Comments
Post a Comment