Bagaimana untuk Mengendalikan Keputusan Tak Segerak dengan chrome.tabs.query?

Mary-Kate Olsen
Lepaskan: 2024-11-01 17:38:30
asal
792 orang telah melayarinya

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

Keputusan Asynchronous dengan chrome.tabs.query

Apabila memanggil chrome.tabs.query, hasil yang dijangkakan mungkin tidak tersedia serta-merta kerana sifat tak segeraknya.

Memahami Tak Segerak

Fungsi tak segerak mengembalikan fungsi panggil balik yang mesti dilaksanakan oleh entiti luaran untuk menerima hasil sebenar. Fungsi panggil balik biasanya digunakan sebaik sahaja keputusan tersedia.

Contoh dengan chrome.tabs.query

Pertimbangkan coretan kod ringkas berikut:

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

Dalam contoh ini, kaedah chrome.tabs.query digunakan untuk mendapatkan semula semua tab terbuka secara tidak segerak. Walau bagaimanapun, penyataan console.log berikutnya akan gagal kerana tatasusunan fourmTabs belum dikemas kini dengan keputusan lagi.

Penyelesaian

Untuk mengakses keputusan, kod yang bergantung padanya mesti diletakkan di dalam fungsi panggil balik, seperti yang ditunjukkan di bawah:

<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>
Salin selepas log masuk

Dengan meletakkan kod di dalam fungsi panggil balik, ia dipastikan bahawa tatasusunan fourmTabs akan diisi dengan keputusan sebelum kod dilaksanakan.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Keputusan Tak Segerak dengan chrome.tabs.query?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!