Как я могу правильно использовать отложенные jQuery для задержки возврата функции до тех пор, пока асинхронный вызов внутри функции не завершится + получить возвращаемое значение?
Это мой текущий код:
function getFields(page)
{
var dff = $.Deferred();
result = {};
$.ajax( //the async call
{
url: page,
success:
function (data)
{
//work out values for field1 & field 2 from data here
result =
{
'field1' : field1,
'field2' : field2
};
},
complete:
function()
{
dff.resolve(result); //my attempt to return the result
}
}
);
return dff.promise();
}
Я хочу, чтобы это напечатало { "field1": "value1", "field2": "value2" }
var result = getFields('http://something');
console.log(JSON.stringify(result));
Однако значение результата выглядит как объект jQuery, поэтому я делаю что-то неправильно, но что?
Спасибо!
P.S. Извините за вопрос о новичке, я первый пользователь отложенных, поэтому я все еще понимаю основные понятия.