recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Une question sur la capture des exceptions de promesse, veuillez me donner une réponse

Je suis nouveau dans les promesses et il y a quelque chose que je ne comprends pas. J'aimerais vous demander de l'aide. :

Le code est le suivant. Ma question est de savoir pourquoi j'ai écrit à la main une erreur non définie dans le minuteur, ce qui amènera la console à signaler directement une erreur, au lieu de dire le rejet et de produire 2 ? Et si je rejette directement (), contrôlez. La station ne signalera pas d'erreur et il est normal que l'écriture manuscrite soit effectuée en dehors du minuteur plutôt qu'à l'intérieur de celui-ci. (Ici b est une variable non définie)

var p = new Promise(function(resolve, reject) {
    setTimeout(function () {
        b++;
    },1000);
    //b++;
});
p.then(function(){
    console.log(1);
},function(){
    console.log(2);
});

Selon ce qui précède, la console signale une erreur.

Et selon ce qui suit, le rejet sera capturé et sorti 2

var p = new Promise(function(resolve, reject) {
    
    b++;
});
p.then(function(){
    console.log(1);
},function(){
    console.log(2);
});
过去多啦不再A梦过去多啦不再A梦2844 Il y a quelques jours679

répondre à tous(1)je répondrai

  • 黄舟

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

    Parce que l'erreur b++ est dans la fonction setTimeout, pas dans la fonction promise.

    répondre
    0
  • Annulerrépondre