2016-04-22 5 views
0

Ich muss später in meinem Code auf Hinweise in einer Funktion verweisen. Wie kann ich Hinweise außerhalb der .git-Methode referenzieren?Ich muss auf ein Array verweisen, das mit .get() erstellt wurde

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

Hinweise als globale Variable deklarieren. –

+0

Beachten Sie, dass '$ .get()' eine ** asynchrone ** Operation ist. Die Rückruffunktion wird * aufgerufen, wenn die HTTP-Anfrage abgeschlossen ist. Es ist möglich, dafür zu sorgen, dass die Antwortdaten außerhalb des Rückrufs zugänglich sind, aber sie sind nicht sofort verfügbar. – Pointy

+0

@DharaParmar - Es global zu machen ist eine schlechte Idee und wird nicht empfohlen. – jfriend00

Antwort

0

Sie können nicht zuverlässig zugreifen clues außerhalb des spezifischen Rückruf wo sein Wert zugeführt wird. Da das Ergebnis über eine asynchrone Operation erhalten wird, ist der Zeitpunkt der Beendigung dieser asynchronen Operation unbekannt. Daher können Sie das Ergebnis nur innerhalb des Callbacks selbst oder in einer Funktion verwenden, die Sie innerhalb dieses Callbacks aufrufen und an den Wert übergeben. So machen Sie asynchrone Programmierung. Sie setzen Ihre Programmiersequenz innerhalb dieses Callbacks fort.

$.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 

Hier sind einige andere ähnliche Antworten:

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

Gemäß der Referenz von Store ajax result in jQuery variable. Sie können Ihre Antwortdaten an eine weitere Funktion übergeben. Darüber hinaus können Sie auch damit spielen, indem Sie Ihre Antwort in Ihrem HTML-Eingabe-Tag hidden speichern.

<input type="hidden" id="clues_data" value=""> 

Also, in Ihrem .get() Methode können Sie etwas tun:

$.get("clues.txt", function(data) 
{ 
    $("#clues_data").val(data); 
}); 

Und dann in Ihrem einige weitere Funktion können Sie es gerne zugreifen:

function someFurtherFunction(){ 
    var clues = $("#clues_data").val().split(','); 
    // do something with clues 
} 

ich das wissen ist nicht die genaue Lösung für Ihre Frage, aber ich habe versucht, Ihnen zu helfen, mit dieser Situation umzugehen. Es kann einem anderen Coder helfen :)

Verwandte Themen