Мне нужно ссылаться на подсказки в функции позже в моем коде. Как я могу ссылаться на подсказки вне метода .git?Мне нужно ссылаться на массив, созданный с помощью .get()
$.get("clues.txt", function(data)
{
var clues = data.split(',');
});
Мне нужно ссылаться на подсказки в функции позже в моем коде. Как я могу ссылаться на подсказки вне метода .git?Мне нужно ссылаться на массив, созданный с помощью .get()
$.get("clues.txt", function(data)
{
var clues = data.split(',');
});
Вы не можете надежно получить доступ к clues
вне конкретного обратного вызова, где подается его значение. Поскольку результат получается через асинхронную операцию, время завершения этой асинхронной операции неизвестно. Таким образом, единственное место, где вы можете надежно использовать результат, находится внутри самого обратного вызова или в функции, вызываемой из этого обратного вызова, и передайте значение. Так вы выполняете асинхронное программирование. Вы продолжаете свою последовательность программирования из этого обратного вызова.
$.get("clues.txt", function(data) {
var clues = data.split(',');
// other code goes here that uses the `clues` variable
});
// code here cannot use the `clues` variable because the asynchronous operation
// has not yet completed so the value is not yet available
Вот некоторые другие связанные с ними ответы:
How do I get a variable to exist outside of this node.js code block?
В соответствии с обращением Store ajax result in jQuery variable. вы можете передать свои данные ответа на некоторые дополнительные функции. Кроме того, вы также можете играть с ним, сохраняя ответ в своем некотором hidden
HTML-теге ввода.
<input type="hidden" id="clues_data" value="">
Таким образом, в методе .get()
вы можете сделать что-то вроде этого:
$.get("clues.txt", function(data)
{
$("#clues_data").val(data);
});
И тогда в вашей некоторой дополнительной функции вы можете обращаться к нему как:
function someFurtherFunction(){
var clues = $("#clues_data").val().split(',');
// do something with clues
}
Я знаю, что это не является точным решением для вашего вопроса, но я попытался помочь вам справиться с этой ситуацией. Это может помочь некоторому другому коду :)
объявить ключи как глобальную переменную .. –
Обратите внимание, что '$ .get()' является ** асинхронной ** операцией. Функция обратного вызова вызывается *, когда HTTP-запрос завершается *. Возможно, чтобы данные ответа были доступны вне обратного вызова, но они не будут доступны сразу. – Pointy
@DharaParmar - Сделать это глобально - плохая идея и не рекомендуется. – jfriend00