Rumah > Artikel > hujung hadapan web > Mengapa Saya Melihat Ralat \"Penolakan Janji Tidak Terkendali\" dalam Sudut 2?
Menyingkap Penolakan Janji Tidak Terkendali dalam Angular 2
Semasa menavigasi melalui tutorial Angular 2, anda mungkin menghadapi ralat yang menunjukkan "Penolakan Janji Tidak Terkendali. " Ini boleh mengelirukan, terutamanya jika anda tidak biasa dengan konsep itu. Mari kita mendalami apa itu "Penolakan Janji Tidak Terkendali" dan cara menyelesaikannya.
Apakah itu Penolakan Janji Tidak Terkendali?
Janji ialah mekanisme penting dalam JavaScript untuk mengendalikan operasi tak segerak. Apabila janji dibuat, ia boleh diselesaikan (berjaya) atau ditolak (tidak berjaya). Jika janji ditolak tetapi tidak dikendalikan dengan betul, ralat "Penolakan Janji Tidak Terkendali" berlaku.
Dalam kes khusus anda, ralat berkenaan dengan spawn cmd ENOENT, menunjukkan bahawa sistem pengendalian tidak dapat mencari arahan bernama "cmd."
Menyelesaikan Janji Yang Tidak Ditangani Penolakan
Untuk menyelesaikan isu ini, anda perlu memastikan bahawa semua janji dalam kod anda dikendalikan. Ini bermakna setiap janji mesti diikuti oleh sama ada blok .then(...) untuk mengendalikan resolusi yang berjaya atau blok .catch(...) untuk mengendalikan penolakan.
Sebagai contoh, fungsi PTest anda boleh diubah suai untuk memasukkan pengendalian ralat:
var PTest = function () { return new Promise(function (resolve, reject) { if (somevar === true) resolve(); else reject(Error("Operation failed")); }); }
Selain itu, anda harus memastikan bahawa pengendalian ralat ditulis sebagai rantai dan bukannya pernyataan berasingan. Kod berikut akan menjana ralat "penolakan janji yang tidak dikendalikan" walaupun terdapat tangkapan cuba:
try { myfunc.then(function () { console.log("Promise Resolved"); }); } catch (e) { console.log("Promise Rejected"); }
Dengan mengikut garis panduan ini, anda boleh mengendalikan penolakan janji dengan berkesan dan menghalang penampilan "Penolakan Janji Tidak Terkendali" kesilapan.
Atas ialah kandungan terperinci Mengapa Saya Melihat Ralat \"Penolakan Janji Tidak Terkendali\" dalam Sudut 2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!