Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Ajax запрос и область видимости (https://javascript.ru/forum/extjs/16015-ajax-zapros-i-oblast-vidimosti.html)

posta 23.03.2011 07:20

Ajax запрос и область видимости
 
Есть функция:
var Runner = function(){		
		return {
			run : function(){	
				console.info(Runner.request(btn,'getTotalCount'));
			},
			request : function(btn,cmd){					
				Ext.Ajax.request({
					waitMsg: 'Секундочку...',
					url: 'synchro.php',					
					success: function (response){
								return response.responseText;
							
							},
					failure: function (response){								
								var resp=response.responseText;	
					
							},
					params: {							
								request:host,
								cmd:cmd
							}
				});				
			}
		}
	}();

//// кнопка
btn.on('click', function(){
        Runner.run();
    });


Как сделать, что бы Runner.request (btn,'getTotalCount') передавала полученные данные в Runner.run?

Matre 23.03.2011 07:24

AJAX — Asynchronous JavaScript and XML

Вызывайте Runner.request в обработчике success.

posta 23.03.2011 07:30

Цитата:

Сообщение от Matre (Сообщение 97624)
Вызывайте Runner.request в обработчике success.

Может туплю, но не понял, как это сделать? Мне же надо иметь запрос в функции, что бы потом с любого места его вызывать. По идее, эта функция должна возвращать ответ.

Matre 23.03.2011 08:17

На момент, когда функция возвращает responseText, данные от сервера не успевают прийти.

posta 23.03.2011 17:06

Цитата:

Сообщение от Matre (Сообщение 97632)
На момент, когда функция возвращает responseText, данные от сервера не успевают прийти.

По опыту я так и понял - НО! ведь responseText должно возвращаться когда придет ответ - это гарантирует sucsess. Или не так?? Может надо использовать requestcomplete? Но это клон sucsesss.


Часовой пояс GMT +3, время: 14:11.