Установить переменную (не могу справиться с параллельностью) 
		
		
		
		
var token = null;
               
function auth( mail, pass ){
    var request = {
                    t:    token,
                    c:    "auth",
                    a:    "index",
                    mail: mail,
                    pass: pass,
                  };
    
    var auth = false;
    // вопользуемся jQuery
    $.getJSON( '/', request, function(data) {
        console.log( request );
        console.log( data );
        
        token = data.token;
        if ( data.result !== undefined ){
            if ( data.result === true ){
                alert( 'Logged in' );
                auth = true;
                
            }
        }
    })
    .complete( function() { auth = true; } );
    
    return auth;
}
alert( auth( "my@mailru", "pass123" ) );
В результате наблюдаю: false, Loged in А хотелось бы: Loged in, true не могу справиться с параллельностью... Собственно как заставить функцию возвращать результат (true/false)? Или, может быть я совсем не правильно делаю и мыслю из-за того, что привык php?  | 
	
		
 Цитата: 
	
 ассинхронность - это когда ты можешь вызвать функцию, но ее результат будет доступен не сразу, а через время При этом в каждый момент времени выполняется только один участок кода, а не несколько паралельно. в твоем примере, ты вызываешь $.getJSON, но ее результат будет доступен только когда с сервера придет ответ, и будет он доступен в функции-колбеке(где ты его и принимаешь в своем коде) При этом, return auth; вызывается сразу же, после того как была выполнена функция $.getJSON, но до того как пришел результат(и возможно даже до того, как был послан запрос) Цитата: 
	
 Твою поблему можно разрулить дввумя способами: 1)нежелательный указать $.getJSON, чтобы он выполнялся синхронно(в дкоументации JQUery описано как сделать) При этом, пока с сервера не придет ответ, код дальше не будет выполнятся. А когда придет, то выполнится return auth;, и ты получишь нужный тебе результат. НО! При этом не будет выполнятся совсем никакой код. Браузер тупо "зависнет", не позволяя пользователю кликнуть что-либо, либо как-то взаимодействовать со страницей. Даже зависание на полсекунды будет неприятно, что уж говорить, если запрос будет выполнятся несколько секунд. Поэтому так никто не делает. 2) привыкать к новой парадигме - асинхронности. Те действия, которые ты хочешь произвести с данными, прищедшими с сервера - ты должен делать в том колбеке, где они доступны. Где у тебя написано auth = true; , вот там и вызывай alert, и что еще тебе нужно  | 
	
		
 Большое спасибо, собственно это и предполагал. Будем разбираться и привыкать... 
	 | 
| Часовой пояс GMT +3, время: 16:42. |