Heim >Web-Frontend >js-Tutorial >Wie gehe ich mit asynchronen Ergebnissen mit chrome.tabs.query um?

Wie gehe ich mit asynchronen Ergebnissen mit chrome.tabs.query um?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-01 17:38:30859Durchsuche

How to Handle Asynchronous Results with chrome.tabs.query?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn