suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript – Eine Frage zum Abfangen von Versprechensausnahmen, bitte geben Sie mir eine Antwort

Ich bin ein Neuling in Sachen Versprechungen und da ist etwas, das ich nicht verstehe. Ich möchte Sie um Hilfe bitten. :

Der Code lautet wie folgt: Warum habe ich einen undefinierten Fehler in den Timer geschrieben, der dazu führt, dass die Konsole direkt einen Fehler meldet, anstatt Ablehnung zu sagen und 2 auszugeben? Die Station meldet keinen Fehler und es ist normal, wenn die Handschrift außerhalb des Timers statt innerhalb des Timers erfolgt. (Hier ist b eine undefinierte Variable)

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

Dem oben Gesagten zufolge meldet die Konsole einen Fehler.

Und wie folgt wird die Ablehnung erfasst und ausgegeben 2

var p = new Promise(function(resolve, reject) {
    
    b++;
});
p.then(function(){
    console.log(1);
},function(){
    console.log(2);
});
过去多啦不再A梦过去多啦不再A梦2768 Tage vor660

Antworte allen(1)Ich werde antworten

  • 黄舟

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

    因为b++的错误是在setTimeout这个function里,不是在promise的function里。

    Antwort
    0
  • StornierenAntwort