Asynchrone Ergebnisse mit chrome.tabs.query
Beim Aufruf von chrome.tabs.query sind die erwarteten Ergebnisse aufgrund von möglicherweise nicht sofort verfügbar seine asynchrone Natur.
Asynchronität verstehen
Asynchrone Funktionen geben eine Rückruffunktion zurück, die von einer externen Entität ausgeführt werden muss, um das tatsächliche Ergebnis zu erhalten. Die Rückruffunktion wird normalerweise aufgerufen, sobald das Ergebnis verfügbar ist.
Beispiel mit chrome.tabs.query
Betrachten Sie den folgenden vereinfachten Codeausschnitt:
<code class="javascript">var fourmTabs = new Array(); chrome.tabs.query({}, function (tabs) { fourmTabs = tabs; console.log(fourmTabs[0].url); });</code>
In diesem Beispiel wird die Methode chrome.tabs.query verwendet, um alle geöffneten Tabs asynchron abzurufen. Die nachfolgende console.log-Anweisung schlägt jedoch fehl, da das Array fourmTabs noch nicht mit den Ergebnissen aktualisiert wurde.
Lösung
Um auf die Ergebnisse zuzugreifen, den Code das auf ihnen basiert, muss wie unten gezeigt in die Rückruffunktion eingefügt werden:
<code class="javascript">var fourmTabs = new Array(); chrome.tabs.query({}, function (tabs) { fourmTabs = tabs; for (var i = 0; i < fourmTabs.length; i++) { if (fourmTabs[i] != null) console.log(fourmTabs[i].url); else { console.log("??" + i); } } });</code>
Durch die Platzierung des Codes in der Rückruffunktion wird sichergestellt, dass das Array fourmTabs vor dem mit den Ergebnissen gefüllt wurde Code wird ausgeführt.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit asynchronen Ergebnissen mit chrome.tabs.query um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!