Walaupun wujud peraturan ESLint tiada pulangan-menunggu, yang tidak menggalakkan penggunaan pulangan menunggu, sesetengah pembangun mungkin mendapati diri mereka menggunakan corak ini. Walaupun ia tidak menimbulkan isu prestasi yang ketara, perihalan peraturan menyebut bahawa menunggu pulangan memperkenalkan "masa tambahan sebelum Janji menyeluruh diselesaikan atau ditolak."
Walau bagaimanapun, "Contoh Mudah" dokumentasi MDN menunjukkan penggunaan pulangan menunggu tanpa membayangkan sebarang kebimbangan prestasi. Untuk menjelaskan percanggahan ini, mari kita terokai kesan sebenar pulangan menanti.
Pada dasarnya, menunggu pulangan adalah operasi yang berlebihan. Resolusi Janji atau penolakan sudah berlaku dalam fungsi async, dan pulangan menunggu hanya menunggunya semula sebelum mengembalikan nilai. Operasi tambahan ini berpotensi menambah masa pelaksanaan yang minimum, tetapi ia tidak mungkin memberi kesan yang ketara pada prestasi.
Satu contoh di mana pemulangan menunggu memang membuat perbezaan yang bermakna ialah dalam pengendalian pengecualian:
try { ... return await ...; } ...
Apabila menggunakan await, penolakan dalam fungsi async mencetuskan pengecualian, memastikan bahawa tangkapan dan akhirnya pengendali dilaksanakan. Walau bagaimanapun, pulangan biasa hanya akan keluar dari blok percubaan dan melangkau pengendali ini.
Walaupun menunggu pulangan bukanlah masalah prestasi secara umum, ia dianggap gaya yang buruk dan mungkin menunjukkan kekurangan pemahaman tentang janji dan async/menunggu. Dalam kebanyakan kes, ia tidak perlu dan harus dielakkan. Walau bagaimanapun, dalam konteks pengendalian ralat, pemulangan menunggu menjadi penting untuk penyebaran pengecualian yang betul.
Atas ialah kandungan terperinci Adakah `pemulangan menanti` merupakan Hambatan Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!