Rumah >hujung hadapan web >tutorial js >Perbezaan antara pemulangan dan pemulangan menanti dalam JavaScript

Perbezaan antara pemulangan dan pemulangan menanti dalam JavaScript

Barbara Streisand
Barbara Streisandasal
2024-12-19 13:16:10602semak imbas

Difference between return and return await in JavaScript

Anda mungkin berfikir bahawa kedua-dua pendekatan ini adalah sama. Tetapi terdapat perbezaan penting antara kepulangan dan kepulangan menanti.

Apabila kami berurusan dengan janji, seperti pertanyaan pangkalan data, kami biasanya menggunakan menunggu. Contohnya:

async function getUserById(userId) {
  const user = await userRepository.findById(userId);
  return user;
}

Walau bagaimanapun, dalam kes ini, penggunaan await tidak semestinya diperlukan. Kita boleh menulisnya seperti ini:

function getUserById(userId) {
  return userRepository.findById(userId);
}

Kedua-dua pilihan akan berfungsi seperti biasa.

Apabila kami mempunyai blok cuba/tangkap, tingkah laku adalah berbeza, dan jika anda tidak menyedari perkara ini, ia boleh menyebabkan ralat yang tidak dijangka.

function getUserById(userId) {
  try {
    return userRepository.findById(userId);
  } catch (error) {
    console.error(error.message);
  }
}

Jika ralat berlaku dalam findById, ia tidak akan ditangkap dan ini mungkin akan menjadi masalah. Di sinilah kita perlu menggunakan menunggu pulangan.

async function getUserById(userId) {
  try {
    return await userRepository.findById(userId);
  } catch (error) {
    console.error(error.message);
  }
}

Sekarang, kami selamat, dan sebarang ralat akan jatuh ke dalam blok tangkapan.

Ringkasnya, jika kami perlu mengendalikan dan memproses ralat dalam blok tangkapan, kami mesti menggunakan tunggu pulangan untuk memastikan aplikasi beroperasi dengan betul.

Atas ialah kandungan terperinci Perbezaan antara pemulangan dan pemulangan menanti 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