Первый шаг - присвоить результаты переменной textInfo
:
$.getJSON(...) {
textInfo = String(data.photo.description._content);
Вызов $ .getJSON () является асинхронным, поэтому ваш код return textInfo;
, вероятно, выполняется до завершения вызова $ .getJSON (). Следовательно, переменная textInfo
по-прежнему является пустой строкой. Вам нужно будет вызвать другой код из вызова $ .getJSON () или отложить выполнение возврата до завершения асинхронного вызова.
Этот ответ основан на аналогичном ответе, найденном здесь .
РЕДАКТИРОВАТЬ (на основе обновления вашего вопроса) :
Вы не добьетесь успеха, включая оператор возврата в пределах $.getJSON()
. Вы можете присвоить результат переменной textInfo
, как вы это сделали, и это значение будет доступно после завершения $ .getJSON.
Однако вы должны убедиться, что вызов завершен, прежде чем пытаться получить доступ к значению. Вы можете использовать setTimeout()
, что выглядит грязно, или вы можете заменить $ .ajax () на ваш вызов $ .getJSON (), чтобы вы могли использовать опцию «async = false». Это заставит вызов завершиться до продолжения выполнения, что позволит заполнить переменную перед ее возвратом.