Rumah > hujung hadapan web > tutorial js > Pumble Dalam JavaScript

Pumble Dalam JavaScript

Barbara Streisand
Lepaskan: 2025-01-05 01:38:40
asal
747 orang telah melayarinya

Pomise In JavaScript

Memahami Janji JavaScript

Janji ialah ciri berkuasa dalam JavaScript yang memudahkan pengendalian operasi tak segerak. Mereka menyediakan cara yang lebih bersih dan lebih intuitif untuk berfungsi dengan kod async, mengelakkan isu seperti "neraka panggilan balik".


Apa itu Janji?

A Janji ialah objek yang mewakili penyiapan (atau kegagalan) operasi tak segerak dan nilai yang terhasil. Ia membolehkan anda menulis kod tak segerak yang lebih terurus dengan merantai operasi dan mengendalikan ralat dengan berkesan.

Negeri-Negeri Janji

Janji mempunyai tiga keadaan:

  • Belum selesai: Keadaan awal, tidak dipenuhi atau ditolak.
  • Ditepati: Operasi selesai dengan jayanya, dan janji mempunyai nilai yang terhasil.
  • Ditolak: Operasi gagal, dan janji mempunyai sebab kegagalan (biasanya ralat).

Contoh:

const promise = new Promise((resolve, reject) => {
  let success = true; // Change to false to simulate rejection

  if (success) {
    resolve("Operation was successful!");
  } else {
    reject("Operation failed.");
  }
});

promise
  .then((result) => console.log(result))
  .catch((error) => console.error(error));
Salin selepas log masuk

Kaedah Janji

1. kemudian()

  • Digunakan untuk mengendalikan pemenuhan janji.
  • Mengembalikan janji lain, membolehkan rantaian.
promise
  .then((result) => {
    console.log(result);
    return "Next Step";
  })
  .then((nextResult) => console.log(nextResult));
Salin selepas log masuk

2. tangkap()

  • Digunakan untuk menangani penolakan janji.
promise.catch((error) => console.error(error));
Salin selepas log masuk

3. akhirnya()

  • Digunakan untuk melaksanakan sekeping kod tanpa mengira hasil janji.
promise.finally(() => console.log("Cleanup actions."));
Salin selepas log masuk

4. Promise.all()

  • Menyelesaikan apabila semua janji dalam tatasusunan diselesaikan.
  • Menolak serta merta jika ada janji yang ditolak.
const promise1 = Promise.resolve(10);
const promise2 = Promise.resolve(20);

Promise.all([promise1, promise2]).then((results) => console.log(results));
Salin selepas log masuk

5. Promise.allSettled()

  • Menunggu semua janji diselesaikan (sama ada ditepati atau ditolak).
const promise1 = Promise.resolve("Success");
const promise2 = Promise.reject("Error");

Promise.allSettled([promise1, promise2]).then((results) => console.log(results));
Salin selepas log masuk

6. Promise.race()

  • Menyelesaikan atau menolak sebaik sahaja salah satu janji selesai atau ditolak.
const promise1 = new Promise((resolve) => setTimeout(resolve, 500, "One"));
const promise2 = new Promise((resolve) => setTimeout(resolve, 100, "Two"));

Promise.race([promise1, promise2]).then((result) => console.log(result));
Salin selepas log masuk

7. Promise.any()

  • Menyelesaikan sebaik sahaja mana-mana janji ditepati.
  • Menolak jika semua janji ditolak.
const promise1 = Promise.reject("Error 1");
const promise2 = Promise.resolve("Success");
const promise3 = Promise.reject("Error 2");

Promise.any([promise1, promise2, promise3]).then((result) => console.log(result));
Salin selepas log masuk

Merangkai Janji

Perantaian membolehkan pengendalian berbilang operasi tak segerak mengikut turutan.

fetch("https://api.example.com/data")
  .then((response) => response.json())
  .then((data) => {
    console.log(data);
    return fetch("https://api.example.com/other-data");
  })
  .then((otherResponse) => otherResponse.json())
  .then((otherData) => console.log(otherData))
  .catch((error) => console.error("Error:", error));
Salin selepas log masuk

Ralat Pengendalian dalam Janji

Ralat merebak melalui rantai janji sehingga ditangkap oleh blok tangkapan().

fetch("https://api.example.com/data")
  .then((response) => {
    if (!response.ok) throw new Error("Network response was not ok");
    return response.json();
  })
  .then((data) => console.log(data))
  .catch((error) => console.error("Error:", error));
Salin selepas log masuk

Contoh Kes Penggunaan Kehidupan Sebenar

Anda boleh meneroka kes penggunaan Promises dalam kehidupan sebenar yang terperinci di sini:

<script></script>

Kesimpulan

JavaScript Promises menyediakan cara yang mantap untuk mengendalikan operasi tak segerak dengan kejelasan dan kecekapan. Dengan menguasai janji, anda boleh menulis kod yang lebih bersih, lebih boleh diselenggara dan mengelakkan perangkap seperti neraka panggil balik. Mula berlatih dengan kaedah dan contoh di atas, dan anda akan berjaya menguasai JavaScript tak segerak!

Atas ialah kandungan terperinci Pumble Dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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