javascript - Une question sur la capture des exceptions de promesse, veuillez me donner une réponse
过去多啦不再A梦
过去多啦不再A梦 2017-06-12 09:28:47
0
1
645

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梦

répondre à tous(1)
黄舟

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal