Fungsi dan Janji Pembina: Pendekatan Praktikal
Pertimbangkan senario mencipta fungsi pembina untuk platform blog dengan pelbagai operasi tak segerak. Timbul persoalan: adakah dinasihatkan agar fungsi pembina mengembalikan Janji dan bukannya objek yang ingin dicipta?
Kebaikan Mengembalikan Janji:
-
Permulaan Terjamin: Janji membenarkan pengguna merantai kemudian pengendali yang dilaksanakan selepas pembina selesai melaksanakan. Ini memastikan objek dimulakan sepenuhnya sebelum mana-mana kod cuba mengaksesnya.
Keburukan Mengembalikan Janji:
-
Gangguan Operator baharu: Janji memecahkan gelagat tradisional fungsi pembina, yang mengembalikan objek yang baru dibuat. Ini boleh membawa kepada kekeliruan dan kemungkinan ralat.
-
Akses Segera Terhad: Janji yang dikembalikan bermakna objek yang dicipta oleh pembina tidak tersedia serta-merta. Pengguna mungkin menghadapi masalah apabila menganggap ia boleh diakses terus selepas pembinaan.
Pendekatan Alternatif:
Daripada mengembalikan Janji daripada pembina, pertimbangkan untuk menggunakan satu daripada strategi berikut:
-
Permulaan Berasingan Kaedah: Cipta kaedah yang secara eksplisit memulakan objek selepas pembinaan. Ini membolehkan pembina mengembalikan objek dengan serta-merta, sambil memastikan ia dimulakan sepenuhnya sebelum digunakan:
var engine = new Engine({path: '/path/to/posts'});
engine.init().then(function() {
// Object is now initialized.
});
-
Fungsi Kilang Statik: Gunakan fungsi kilang statik untuk cipta dan mulakan objek secara tidak segerak. Pendekatan ini memberikan fleksibiliti yang lebih besar dalam pemerolehan data dan memudahkan pembina:
Engine.create({path: '/path/to/posts'}).then(function(engine) {
// Object is now initialized.
});
Kesimpulan:
Sambil mengembalikan Janji daripada fungsi pembina boleh menawarkan tertentu faedah, ia secara amnya dianggap sebagai amalan yang tidak baik. Dengan mengikut pendekatan alternatif yang dicadangkan, anda boleh mencapai kefungsian yang diingini tanpa mengganggu gelagat pembina yang diharapkan.
Atas ialah kandungan terperinci Patutkah Fungsi Pembina Mengembalikan Janji?. 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