2016-04-22 5 views
0

Мне нужно ссылаться на подсказки в функции позже в моем коде. Как я могу ссылаться на подсказки вне метода .git?Мне нужно ссылаться на массив, созданный с помощью .get()

$.get("clues.txt", function(data) 
{ 
    var clues = data.split(','); 
}); 
+0

объявить ключи как глобальную переменную .. –

+0

Обратите внимание, что '$ .get()' является ** асинхронной ** операцией. Функция обратного вызова вызывается *, когда HTTP-запрос завершается *. Возможно, чтобы данные ответа были доступны вне обратного вызова, но они не будут доступны сразу. – Pointy

+0

@DharaParmar - Сделать это глобально - плохая идея и не рекомендуется. – jfriend00

ответ

0

Вы не можете надежно получить доступ к 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?

Node.JS How to set a variable outside the current scope

How to capture the 'code' value into a variable?

0

В соответствии с обращением 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 
} 

Я знаю, что это не является точным решением для вашего вопроса, но я попытался помочь вам справиться с этой ситуацией. Это может помочь некоторому другому коду :)

Смежные вопросы