передать данные из метода get jquery

0
var transactionID;
$.get('http://127.0.0.1/getId', null,function(data) {
    transactionID = data;
    alert(transactionID);
});
alert(transactionID);

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

  • 0
    Это из-за потока управления в JavaScript. Чтобы получить правильно идентификатор транзакции, вы должны использовать функцию обратного вызова get inside.
Теги:
get

1 ответ

1

$.get выполняется асинхронно, то есть отправляет запрос на сервер и выполняет строки после него. Таким образом, предупреждение снаружи будет выполнено до того, как сервер вернет ответ, а когда он это сделает, он выполнит функцию в методе get.

Чтобы использовать возвращаемое значение, поместите любой необходимый код внутри вызова get, например, вызовите другую функцию, передав ему идентификатор transactionID в качестве аргумента:

var transactionID;
$.get('http://127.0.0.1/getId', null,function(data) {
    transactionID = data;
    alert(transactionID);
    doSomethingWithID(transactionID);
});

Или просто вызовите функцию, которая использует ее:

$.get('http://127.0.0.1/getId', null,function(data) {
    transactionID = data;
    alert(transactionID);
    doSomethingWithID();
});
function doSomethingWithID()
{
  // code that uses transationID
}
  • 0
    Спасибо за комментарии. Тем не менее, мне нужно установить глобальную переменную и не могу поместить все методы внутри этого метода get. Есть ли способ сделать это?
  • 0
    Вы уже устанавливаете значение глобальной переменной, но проблема в том, что вам нужно получить к ней доступ после того, как вы установите ее значение, и ее гарантированно будет установлено только после того, как ответ от сервера вернется. Вам не нужно помещать все методы внутри метода get, вам просто нужен метод get, чтобы сказать, когда установлено значение, например, есть логическая переменная, которая устанавливается в true, когда get завершена, и код будет продолжайте ждать, пока это значение не станет истинным. Но я бы не пошел по этому пути.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню