Maison > interface Web > js tutoriel > le corps du texte

Comment gérer les résultats asynchrones avec chrome.tabs.query ?

Mary-Kate Olsen
Libérer: 2024-11-01 17:38:30
original
831 Les gens l'ont consulté

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

Résultats asynchrones avec chrome.tabs.query

Lors de l'appel de chrome.tabs.query, les résultats attendus peuvent ne pas être immédiatement disponibles en raison de sa nature asynchrone.

Comprendre l'asynchronie

Les fonctions asynchrones renvoient une fonction de rappel qui doit être exécutée par une entité externe pour recevoir le résultat réel. La fonction de rappel est généralement invoquée une fois le résultat disponible.

Exemple avec chrome.tabs.query

Considérez l'extrait de code simplifié suivant :

<code class="javascript">var fourmTabs = new Array();
chrome.tabs.query({}, function (tabs) {
    fourmTabs = tabs;
    console.log(fourmTabs[0].url);
});</code>
Copier après la connexion

Dans cet exemple, la méthode chrome.tabs.query est utilisée pour récupérer tous les onglets ouverts de manière asynchrone. Cependant, l'instruction console.log suivante échouera car le tableau fourmTabs n'a pas encore été mis à jour avec les résultats.

Solution

Pour accéder aux résultats, le code qui en dépend doit être placé dans la fonction de rappel, comme indiqué ci-dessous :

<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>
Copier après la connexion

En plaçant le code à l'intérieur de la fonction de rappel, il est assuré que le tableau fourmTabs aura été rempli avec les résultats avant le le code est exécuté.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal