Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengendalikan Resolusi Janji dengan Berkesan dalam JavaScript Asynchronous?
Fungsi tak segerak membolehkan pemprosesan tidak menyekat dengan melaksanakan tugas serentak, mengembalikan janji yang mewakili hasil operasi. Walau bagaimanapun, apabila dilaksanakan tanpa pengendalian yang betul, fungsi tak segerak mungkin menghasilkan Janji {
Dalam coretan kod yang disediakan, fungsi AuthUser mengembalikan janji yang mewakili hasil fungsi google.login. Walau bagaimanapun, panggilan seterusnya kepada AuthUser dalam userToken = AuthUser(data) menghasilkan janji yang tidak dapat diselesaikan kerana tiada panggilan balik digunakan untuk mengendalikan resolusinya.
Untuk menangkap keputusan janji, a .then or .catch kaedah mesti dilampirkan pada janji. Kaedah ini membolehkan anda mengendalikan resolusi janji atau penolakan, masing-masing.
Pengubahsuaian berikut menangkap nilai janji userToken dalam panggilan balik:
let userToken = AuthUser(data); userToken.then(function(result) { console.log(result); // "Some User token" });
Janji sememangnya menghala ke hadapan. Setelah diselesaikan, hasilnya diserahkan kepada pengendali .then atau .catch, tanpa mengira keadaan semasa janji itu. Pengendali .then berikut akan sentiasa menerima nilai janji berantai yang telah diselesaikan yang dikembalikan dalam .then sebelumnya.
Pulangan Nilai:
initPromise() .then(function(result) { console.log(result); // "initResolve" return "normalReturn"; }) .then(function(result) { console.log(result); // "normalReturn" });
Janji Rantaian:
initPromise() .then(function(result) { console.log(result); // "initResolve" return new Promise(function(resolve, reject) { setTimeout(function() { resolve("secondPromise"); }, 1000) }) }) .then(function(result) { console.log(result); // "secondPromise" });
Dengan mematuhi prinsip ini, anda boleh mengendalikan operasi tak segerak dengan berkesan dan menangkap nilai diselesaikannya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Resolusi Janji dengan Berkesan dalam JavaScript Asynchronous?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!