cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Soalan tentang penangkapan pengecualian janji, sila beri saya jawapan

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);
});
过去多啦不再A梦过去多啦不再A梦2844 hari yang lalu681

membalas semua(1)saya akan balas

  • 黄舟

    黄舟2017-06-12 09:30:47

    Kerana ralat b++ adalah dalam fungsi setTimeout, bukan dalam fungsi promise.

    balas
    0
  • Batalbalas