Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mencipta dan Mengurus Janji Menggunakan setTimeout dalam JavaScript?

Bagaimana untuk Mencipta dan Mengurus Janji Menggunakan setTimeout dalam JavaScript?

Linda Hamilton
Lepaskan: 2024-12-06 00:27:11
asal
736 orang telah melayarinya

How to Create and Manage Promises Using setTimeout in JavaScript?

Cara Membuat Janji daripada setTimeout

Mencipta Janji Asas untuk setTimeout;<🎜

Untuk membuat janji bahawa async boleh kembali selepas setTimeout panggilan balik menyala, kita boleh membalut fungsi setTimeout dalam pembina janji, seperti yang dilihat dalam coretan di bawah:

</p>
<p>fungsi setTimeoutReturnPromise(delay) {<br> return new Promise((resolve ) => {<br></p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">setTimeout(resolve, delay);
Salin selepas log masuk

Salin selepas log masuk
});

}

Fungsi ini mengambil kelewatan sebagai hujah dan mengembalikan janji. Janji akan diselesaikan selepas kelewatan yang ditentukan telah berlalu dan panggilan balik fungsi setTimeout akan dilaksanakan.

Menggunakan Janji dengan async

Sekarang, fungsi async kami boleh menggunakan fungsi setTimeoutReturnPromise untuk mencipta janji bahawa ia boleh kembali. Ini membolehkan kami menggunakan kaedah then() untuk melaksanakan kod selepas panggilan balik setTimeout telah digunakan:

<p>async(function() {<br> setTimeoutReturnPromise(5000).then( () => {<br></p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">console.log("async called back");
Salin selepas log masuk
});

});

Mengemas kini untuk ES2015 dan Seterusnya

Sejak pengenalan ES2015 dan JavaScript moden, janji telah menjadi ciri terbina dalam. Sintaks telah dipermudahkan, seperti yang ditunjukkan di bawah:

<p>fungsi kemudian(delay) {<br> return new Promise((resolve) => {<br></p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">setTimeout(resolve, delay);
Salin selepas log masuk
Salin selepas log masuk
});

}

Menggunakan fungsi anak panah dan argumen nilai resolusi pilihan, kod itu boleh dipekatkan lagi:

const kemudian = (kelewatan, nilai) => Janji baharu(menyelesaikan => setTimeout(menyelesaikan, menangguhkan, nilai));

Janji Boleh Dibatalkan (pilihan)

Jika anda ingin membatalkan tamat masa, anda boleh mengembalikan objek dengan janji dan pembatalan kaedah:

const kemudian = (kelewatan, nilai) => {
biarkan pemasa = 0;
biarkan tolak = null;
const promise = new Promise((resolve, _reject) => {

reject = _reject;
timer = setTimeout(resolve, delay, value);
Salin selepas log masuk
});

kembali {

get promise() { return promise; },
cancel() {
  if (timer) {
    clearTimeout(timer);
    timer = 0;
    reject();
    reject = null;
  }
}
Salin selepas log masuk
};

};

Pendekatan ini membolehkan anda membatalkan tamat masa dan menolak janji menggunakan kaedah cancel().

Atas ialah kandungan terperinci Bagaimana untuk Mencipta dan Mengurus Janji Menggunakan setTimeout dalam JavaScript?. 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