- JS Функция
Я пишу функцию, чтобы проверить, если пользователь в группе Sharepoint в JavaScriptКак получить значение bool после проверки текущего пользователя в группе sharepoint в javascript?
function IsCurrentUserMemberOfGroup(groupName, OnComplete) { var currentContext = new SP.ClientContext.get_current(); var currentWeb = currentContext.get_web(); var currentUser = currentContext.get_web().get_currentUser(); currentContext.load(currentUser); var allGroups = currentWeb.get_siteGroups(); currentContext.load(allGroups); currentContext.load(allGroups, 'Include(Users)'); currentContext.executeQueryAsync(OnSuccess, OnFailure); function OnSuccess(sender, args) { var userInGroup = false; var groupEnumerator = allGroups.getEnumerator(); while (groupEnumerator.moveNext()) { var oGroup = groupEnumerator.get_current(); if (groupName == oGroup.get_title()) { var allUsers = oGroup.get_users(); var userEnumerator = allUsers.getEnumerator(); while (userEnumerator.moveNext()) { var oUser = userEnumerator.get_current(); if (oUser.get_id() == currentUser.get_id()) { userInGroup = true; break; } } } } OnComplete(userInGroup); } function OnFailure(sender, args) { OnComplete(false); } }
- Использование
Я использую его в другой функции, хочу получить значение bool OnComplete и вернуть его.
function SetButtonPermission() { var isInGroup; IsCurrentUserMemberOfGroup("Global", function(isCurrentUserInGroup) { isInGroup = isCurrentUserInGroup; }); return isInGroup; }
- Вопрос
Похоже, я не могу получить логическое значение isCurrentUserInGroup, потому что он предупредит "isInGroup является undetified". Итак, как я могу получить значение bool?
Возможный дубликат [Доступ к переменной, которая выводится из функции async] (http://stackoverflow.com/questions/31685255/access-to-a-variable-which-is-output-from-an -асинхронная функция) –