Saya baru mengenali janji, dan ada sesuatu yang saya tidak faham saya ingin meminta bantuan anda. :
Kodnya adalah seperti berikut. Soalan saya ialah mengapa saya menulis ralat yang tidak ditentukan dalam pemasa, yang akan menyebabkan konsol melaporkan ralat secara langsung, bukannya mengatakan penolakan dan mengeluarkan 2 Dan jika saya menolak() secara langsung, kawal Stesen tidak akan melaporkan ralat, dan adalah perkara biasa jika tulisan tangan dilakukan di luar pemasa dan bukannya di dalamnya. (Di sini b ialah pembolehubah tidak ditentukan)
var p = new Promise(function(resolve, reject) {
setTimeout(function () {
b++;
},1000);
//b++;
});
p.then(function(){
console.log(1);
},function(){
console.log(2);
});
Mengikut perkara di atas, konsol melaporkan ralat.
Dan mengikut yang berikut, penolakan akan ditangkap dan output 2
var p = new Promise(function(resolve, reject) {
b++;
});
p.then(function(){
console.log(1);
},function(){
console.log(2);
});
Kerana ralat b++ adalah dalam fungsi setTimeout, bukan dalam fungsi promise.