ホームページ  >  記事  >  ウェブフロントエンド  >  chrome.tabs.query で非同期結果を処理する方法は?

chrome.tabs.query で非同期結果を処理する方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-01 17:38:30793ブラウズ

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

chrome.tabs.query による非同期結果

chrome.tabs.query を呼び出すと、予期した結果がすぐに利用できない場合があります。

非同期について

非同期関数は、実際の結果を受け取るために外部エンティティによって実行される必要があるコールバック関数を返します。通常、コールバック関数は、結果が利用可能になると呼び出されます。

chrome.tabs.query の例

次の簡略化されたコード スニペットを考えてみましょう:

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

この例では、chrome.tabs.query メソッドを使用して、開いているすべてのタブを非同期的に取得します。ただし、fourmTabs 配列がまだ結果で更新されていないため、後続の console.log ステートメントは失敗します。

解決策

結果にアクセスするには、コードこれらに依存するものは、以下に示すようにコールバック関数内に配置する必要があります。

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

コードをコールバック関数内に配置することで、fourmTabs 配列に結果が確実に入力されるようになります。コードが実行されます。

以上がchrome.tabs.query で非同期結果を処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。