Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 12.11.2012, 12:30
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от dmitriymar
1 (function(){
2 function a(i){alert(i)};
3 for (var i=0;i<10;i++){
4 (function(i){
5 setTimeout(function(){a(i)},50); // типа аякс запрос и ответ через время
6 })(i);
7 }
8 })();
я дал пример как можно это сделать -обрамить анонимной функцией и в неё передать параметры -будет новый скоп где значения будут нужными -поскольку простые передаются по значению . сравнить можно с аналогичным кодом не обрамлённым .вместо таймера запрос и обработчик ответов.

Последний раз редактировалось dmitriymar, 12.11.2012 в 17:04.
Ответить с цитированием
  #12 (permalink)  
Старый 12.11.2012, 21:46
Интересующийся
Отправить личное сообщение для beebop Посмотреть профиль Найти все сообщения от beebop
 
Регистрация: 11.11.2012
Сообщений: 22

Все бы хорошо, но я не могу передать в callback функцию переменную i.
i все 10 раз будет равно 9
Ответить с цитированием
  #13 (permalink)  
Старый 13.11.2012, 10:08
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

beebop,
Зачем передавать в колбек ?передавать нужно в обертку
Ответить с цитированием
  #14 (permalink)  
Старый 14.11.2012, 09:47
Интересующийся
Отправить личное сообщение для beebop Посмотреть профиль Найти все сообщения от beebop
 
Регистрация: 11.11.2012
Сообщений: 22

Я извиняюсь. Может быть я совсем дурак...
(function(){
							function myfunc(index, obj){
								var uid = parseInt((/\d+/).exec(obj.S_VKID));
								VK.Api.call('users.get', {uids: uid, fields: 'sex, photo'}, form_row);
								

								function form_row(data) {
								console.log(index);	
							        //0 1 2 5 3 4 6 7 9 10 8 11 12 13 14 16 15 17 18 21 20 19 22 23 26 24 25 27  !!!!!
							    }
							}
								for(i=0; i<queue_content.length; i++){
									(function(i){
										index = i;
										obj = queue_content[i];
										myfunc(index, obj);
									})(i);
								}
									
						})();
Ответить с цитированием
  #15 (permalink)  
Старый 14.11.2012, 11:31
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

В функцию нужно забрасывать все практически - все что должно существовать в едином отдельном контексте . По русски же сказал что и запрос и колбек и ...
Ответить с цитированием
  #16 (permalink)  
Старый 14.11.2012, 18:54
Интересующийся
Отправить личное сообщение для beebop Посмотреть профиль Найти все сообщения от beebop
 
Регистрация: 11.11.2012
Сообщений: 22

ок, смотрите

(function(){
							
							function a(i){
								form_row();
								function form_row(data) {
									setTimeout(function(){console.log(i)},50);// типа аякс ответ 0 1 2 3 4 5 6 7 8 9
								}
							}
							
							for(var i=0; i<10; i++){
								(function(i){
									a(i);
								})(i);
							}
									
						})();

(function(){
							
							function a(i){
								VK.Api.call('users.get', {uids: uid}, form_row);
								function form_row(data) {
									setTimeout(function(){console.log(i)},50);// типа аякс ответ  4 2 3 0 1 6 5 7 8 9
								}
							}
							
							for(var i=0; i<10; i++){
								(function(i){
									a(i);
								})(i);
							}
									
						})();


Ну или если опять что не так, то можно special for dummies?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Области видимости событий Turok Events/DOM/Window 3 14.08.2011 20:26
Непонятки с областью видимости переменной zeleniy Общие вопросы Javascript 7 18.04.2011 16:08
стили Css в зависимости от высоты активной области браузера Vladimir_Kl Javascript под браузер 3 23.03.2011 16:04
Как узнать находится ли DOM элемент в области видимости? phgrey Общие вопросы Javascript 4 22.03.2011 19:05
области видимости элементов zaytsewa jQuery 14 11.01.2011 16:49