Rumah  >  Artikel  >  hujung hadapan web  >  Adakah Menunggu Rantai Janji dalam Angular 6 adalah Bau Kod?

Adakah Menunggu Rantai Janji dalam Angular 6 adalah Bau Kod?

DDD
DDDasal
2024-11-20 03:02:02290semak imbas

Is Awaiting a Promise Chain in Angular 6 a Code Smell?

Menunggu Rantaian Janji: Adakah Ia Satu Perangkap?

Dalam Angular 6, pembangun telah dinasihatkan supaya tidak menggunakan kod berikut:

await someFunction().then(result => {
    console.log(result);
});

Kebimbangan bukanlah bahawa tidak ada gunanya menunggu rantai janji - selagi someFunction() mengembalikan janji, kedua-dua coretan berfungsi sama. Masalahnya terletak di tempat lain.

Kekeliruan timbul daripada mencampurkan gaya pengaturcaraan async. Fungsi Async, yang diperkenalkan pada ES2017, memperkenalkan kata kunci tunggu. Apabila menunggu digunakan dalam fungsi async, ia menjeda pelaksanaan fungsi dan menunggu janji diselesaikan. Ini memudahkan pengaturcaraan async dan menjadikannya lebih mudah untuk membaca dan memahami kod.

Sebaliknya, promise chaining ialah pendekatan lama untuk pengaturcaraan async. Ia melibatkan penggunaan .then() untuk merangkaikan pelbagai janji bersama-sama. Walaupun pendekatan ini masih sah, ia boleh mengelirukan apabila dicampur dengan menunggu.

Sebagai contoh, jika anda ingin menambah panggilan janji lain di lokasi console.log() panggil atau kembali secara bersyarat daripada fungsi , semantik menjadi tidak jelas. Bolehkah anda menggunakan await dalam panggilan balik seperti di tempat lain dalam fungsi? Adakah anda perlu mengembalikan hasil daripada panggilan balik .then()? Adakah mungkin untuk kembali dari fungsi luar?

Untuk mengelakkan komplikasi ini, disyorkan untuk berpegang pada satu gaya pengaturcaraan async, sebaik-baiknya menggunakan await untuk konsistensi. Dengan berbuat demikian, anda boleh memudahkan kod anda dan mengurangkan risiko memperkenalkan pepijat. Versi yang lebih ringkas dan bersih ialah:

const result = await someFunction();
console.log(result);

Atas ialah kandungan terperinci Adakah Menunggu Rantai Janji dalam Angular 6 adalah Bau Kod?. 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