Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mengendalikan Keputusan Tak Segerak dengan chrome.tabs.query?

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

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-01 17:38:30849semak imbas

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>

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>

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!

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