Dalam Sudut 2, anda mungkin menghadapi mesej ralat yang menyatakan "Penolakan Janji Tidak Terkendali." Ralat yang membingungkan ini merujuk kepada pengendalian janji yang tidak betul dalam kod anda.
Janji ialah operasi tak segerak yang mewakili penyiapan atau kegagalan tindakan akhirnya . Dalam JavaScript, janji boleh dibuat menggunakan pembina Promise. Apabila janji dibuat, ia boleh sama ada diselesaikan dengan nilai atau ditolak dengan ralat.
Apabila menggunakan janji, adalah penting untuk mengendalikan kedua-dua senario resolusi dan penolakan. Ini dicapai menggunakan kaedah .then() dan .catch(). .then() digunakan untuk mengendalikan keadaan yang diselesaikan, manakala .catch() mengendalikan keadaan yang ditolak.
Penolakan janji yang tidak dikendalikan berlaku apabila janji tidak ditangani dengan baik. Ini boleh berlaku jika anda hanya menggunakan .then() tanpa menyediakan pengendali .catch(). Tanpa kaedah .catch(), penolakan janji dianggap tidak dikendalikan, membawa kepada mesej ralat.
Ralat: ralat spawn cmd ENOENT" yang anda temui secara khusus berkaitan dengan pelaksanaan skrip Node.js dalam command prompt. ENOENT menunjukkan bahawa arahan yang ditentukan tidak dapat ditemui.
Untuk mengelakkan penolakan janji yang tidak dikendalikan, pastikan anda mengendalikan semua janji dengan betul. Tambah pengendali .catch() untuk memastikan semua hasil yang mungkin ditangkap dan dikendalikan dengan baik.
Kod berikut menunjukkan pengendalian janji yang betul dengan menambahkan .catch() pengendali:
var PTest = function () {
return new Promise(function (resolve, reject) { if (somevar === true) resolve(); else reject(); });
}
var myfunc = PTest();
myfunc.then(function () {
console.log("Promise Resolved");
}).tangkap(fungsi () {
console.log("Promise Rejected");
});
Atas ialah kandungan terperinci Apakah itu Penolakan Janji Tidak Terkendali dalam Sudut 2 dan Bagaimana Saya Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!