2016-01-22 2 views
0

Хорошо, я знаю, что ответ на это легко. У меня просто очень мало опыта в Javascript. Внутри ctx.ExecuteQuery предупреждение выводит значение, которое я хочу. Как мне получить его ниже для userName.Split ('|'); Всего новичок здесь, так что, пожалуйста, не высмеивать меня плохо, не зная, что я делаю ..Javascript Passing Variable

Edit: Могу ли я вернуть вар из функции асинхронного это мой источник https://msdn.microsoft.com/en-us/library/office/ee535262(v=office.14).aspx?cs-save-lang=1&cs-lang=javascript#code-snippet-2 Я хотел бы вернуться, или если есть лучший способ

var user = ctx.get_web().get_currentUser(); 
     ctx.load(user); 

     var userName; 
     ctx.executeQueryAsync(function(){ 
       userName = user.get_loginName(); 
       alert(userName); 
       }, function(){alert(":(");}); 



     //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
     var userSplit = userName.split('|'); 
+1

Вы пытаетесь съесть пиццу перед тем, как парень доставки привез ее в ваш дом. Существует причина, почему есть функция обратного вызова, где работает предупреждение. Вызов асинхронный, он не ждет, он просто продолжает работать. http://stackoverflow.com/questions/14220321/how-do-return-the-response-from-an-asynchronous-call – epascarello

+0

Могу ли я вернуть Var из Async-функции, как если бы я был нормальной функцией? – user3753693

ответ

-1

можно кэшировать от userSplit перед вызовом функции асинхронной. И установите его в асинхронном обратном вызове, где находится ваше предупреждение. не

var user = ctx.get_web().get_currentUser(); 
 
    ctx.load(user); 
 

 
    var userName; 
 
    var userSplit; 
 
    ctx.executeQueryAsync(function() { 
 
     userName = user.get_loginName(); 
 
     alert(userName); 
 
    }, function() { 
 
     alert(":("); 
 
     userSplit = userName.split('|'); 
 
    });

1

Ответ нет.

Вы должны использовать promise или callback.

+0

Как это использовать? не могли бы вы рассказать? – user3753693

+0

Простейшим решением было бы поместить логику с помощью 'userSplit' в функцию и вызвать ее при успешной и отказоустойчивой функции async. – emil

Смежные вопросы