Rumah > hujung hadapan web > tutorial js > Bolehkah Fungsi JavaScript Asynchronous Dipaksa Melaksanakan Secara Segerak?

Bolehkah Fungsi JavaScript Asynchronous Dipaksa Melaksanakan Secara Segerak?

DDD
Lepaskan: 2024-12-03 03:24:10
asal
675 orang telah melayarinya

Can Asynchronous JavaScript Functions Be Forced to Execute Synchronously?

Bolehkah Fungsi Javascript Asynchronous Dipanggil Secara Segerak?

Walaupun pengaturcaraan tak segerak adalah perkara biasa dalam Javascript, senario tertentu mungkin memerlukan panggilan fungsi segerak untuk sedia ada. pangkalan kod. Walaupun mengakui sifat suboptimum pendekatan ini, panggilan tak segerak mungkin perlu diubah suai ke pangkalan kod segerak yang lebih besar kerana kekangan masa.

Menyekat Fungsi Panggilan Balik

Cabarannya terletak pada menyekat pelaksanaan fungsi panggilan sehingga panggilan balik daripada fungsi tak segerak adalah diterima. Pertimbangan utama termasuk:

  • Kemustahilan Menyekat UI: Menyekat masa jalan Javascript sudah pasti akan membekukan pengalaman UI.
  • Pembolehubah Global Tinjauan: Pendekatan alternatif melibatkan tinjauan pembolehubah global yang ditetapkan oleh panggilan balik dalam fungsi panggilan. Ini boleh dicapai menggunakan pemasa selang waktu, menyemak berulang kali sehingga pembolehubah global diisi.

Contoh Pelaksanaan:

function doSomething() {
  var data;

  function callBack(d) {
    window.data = d;
  }

  myAsynchronousCall(param1, callBack);

  // Start polling
  var intvl = setInterval(function() {
    if (window.data) {
      clearInterval(intvl);
      console.log(data);
    }
  }, 100);
}
Salin selepas log masuk

Pemfaktoran semula untuk Pematuhan Asynchronous:

Walau bagaimanapun, ia berbaloi mengambil perhatian bahawa pendekatan yang ideal kekal untuk mengubah suai fungsi panggilan dan lulus panggilan balik untuk mengendalikan operasi tak segerak. Ini mengekalkan integriti tak segerak tanpa mengorbankan fungsi pangkalan kod segerak.

function doSomething(func) {
  function callBack(d) {
    func(d);
  }

  myAsynchronousCall(param1, callBack);
}

doSomething(function(data) {
  console.log(data);
});
Salin selepas log masuk

Atas ialah kandungan terperinci Bolehkah Fungsi JavaScript Asynchronous Dipaksa Melaksanakan Secara Segerak?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan