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!