var transactionID;
$.get('http://127.0.0.1/getId', null,function(data) {
transactionID = data;
alert(transactionID);
});
alert(transactionID);
Предупреждение внутри метода get возвращает значение правильно. Однако, когда идентификатор транзакции во втором предупреждении вне метода get все еще равен нулю? Как правильно передать возвращаемые данные из метода get?
$.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
}