Maison > Questions et réponses > le corps du texte
function p(){
return new Promise((resolve, reject) => {
reject();
});
}
p().then(()=>{
console.log(1);
})
J'ai réédité la question, juste pour demander si je n'écris pas le .catch() de p(), comment dois-je écrire le navigateur à l'intérieur de la fonction p pour que le navigateur ne signale pas d'erreur
PHP中文网2017-05-19 10:43:01
Deux questions :
1.le retour n'est pas renvoyé
2.il faut ajouter un support après une nouvelle promesse
Le code original est donc le suivant
var x = 10;
function p() {
return new Promise((resolve, reject)=>{
if(1 < x) {
resolve();
}
if(5 < x) {
reject();
}
});
}
p().then(() => {
alert(1)
})
Il n'y aura aucun problème avec cet appel. De plus, après 1<x, nous jugerons 5<x. Le if suivant est complètement inutile et ne sera pas exécuté. La raison est que l'état de la promesse ne peut être que modifié. une fois. Le deuxième changement ne sera pas effectif. .
Même si rejeter() est exécuté, l'erreur générée par la promesse est une question de promesse et n'a rien à voir avec la fonction P. L'erreur générée par la promesse ne peut être capturée que par. ajouter une instruction catch après la promesse. Puisque la fonction p renvoie la promesse de new, il suffit d'ajouter l'instruction catch après le résultat de l'exécution de la fonction p.
Il est recommandé de lire cet article : Manuel d'utilisation de la promesse