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);
});
因为b++的错误是在setTimeout这个function里,不是在promise的function里。