Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Работа с полученным через $.get() обьэктом/данными (https://javascript.ru/forum/misc/63251-rabota-s-poluchennym-cherez-%24-get-obehktom-dannymi.html)

BuZZinga 26.05.2016 15:47

Работа с полученным через $.get() обьэктом/данными
 
Господа!
3й день бьюсь с одной функцией!
var userIdD = $.get('http://someurl.com/options.php', function(abc) {
  var abc = $(abc);
  var link = $(abc).find('a:contains(View My Profile)');
  //console.log (link);
  var userID = $(link).attr('href');
  var userId = $(userID);
  console.log(userId);
  console.log(userID);
});

console.log(userIdD);
console.log(userId);


Внутри самой функции console.log срабатывает вполне успешно, а после выхода из неё показывается как undefined!
Подскажите, как можно правильно извлечь данные, чтобы в дальнейшем была возможность ими пользоваться!
версия jquery-1.4.4.js

Dilettante_Pro 26.05.2016 17:17

BuZZinga,
http://jquery.page2page.ru/index.php...0%BE%D0%BC_GET
http://kbyte.ru/ru/Programming/Artic...id=70&mode=art

Dilettante_Pro 26.05.2016 17:27

BuZZinga,
Сделайте userId глобальной переменной, и сможете пользоваться ей вне функции.
Но, с учетом того, что get - асинхронный запрос, она не сразу получит значение из ответа.

BuZZinga 26.05.2016 17:40

вот как раз и воюю с тем, чтобы получить её, и в дальнейшем пользоваться ею

Dilettante_Pro 26.05.2016 17:46

BuZZinga,
var userId;
 $.get('http://someurl.com/options.php', function(abc) {
  var abc = $(abc);
  var link = $(abc).find('a:contains(View My Profile)');
  //console.log (link);
  var userID = $(link).attr('href');
  userId = $(userID);
  console.log(userId);
  console.log(userID);
});

и через какое-то время можно будет
console.log(userId);


Но правильней было бы использовать ее внутри функции обработки ответа

Dilettante_Pro 26.05.2016 17:56

BuZZinga,
Или использовать более новую версию jQuery, и тогда у вас появится объект jqXHR, который содержит, кроме всего, и ответ от сервера.
Смотрите первую ссылку в посте №2
а также
http://jquery.page2page.ru/index.php...BA%D1%82_jqXHR

BuZZinga 27.05.2016 13:21

с удовольствием использовал бы более новую версию, но к сожалению это не представляется возможным((
выходить надо из того что есть(

destus 27.05.2016 13:38

BuZZinga,
Используй паттерн pub/sub с помощью этой фичи http://api.jquery.com/triggerHandler/. Когда ответ пришел, генерируешь событие. Где-то ниже, идет подписка на это событие. userID и userId передавай как экстра-параметры.


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