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

Pumble Dalam JavaScript

Barbara Streisand
Barbara Streisandasal
2025-01-05 01:38:40720semak imbas

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));

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));

2. tangkap()

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

3. akhirnya()

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

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));

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));

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));

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));

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));

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));

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