recherche

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

Erreur non capturée (dans la promesse) lors du rejet d'une promesse à l'aide de setTimeout() en JavaScript

<p>J'apprends les promesses en JavaScript et j'ai décidé d'implémenter une promesse simple dans laquelle je définirais un délai d'attente de 3 secondes, puis rejetterais la promesse. Après l'avoir rejeté, j'attrape l'erreur et l'affiche dans un élément HTML. La promesse fonctionne parfaitement et affiche le message, mais j'obtiens l'erreur suivante dans la console. </p> <pre class="brush:php;toolbar:false;">Non capturé (promis) Je te déteste Promesse.then (asynchrone) (anonyme)</pre> <p>Voici le code pour votre référence -</p> <p> <pre class="snippet-code-js lang-js Prettyprint-override"><code>const myPromise = new Promise(function(myResolve, rejet) { setTimeout(() => { rejeter('Je te déteste'); }, 3000); }); maPromesse.then(fonction(valeur) { document.getElementById("demo").innerHTML = valeur; }); maPromesse.catch( erreur => { console.log("L'attraper"); document.getElementById("demo").innerHTML = erreur; });</code></pre> <pre class="snippet-code-html lang-html Prettyprint-override"><code><h2>Promesse JavaScript</h2> <p>Attendez 3 secondes (3 000 millisecondes) pour que cette page change.</p> <h1 id="demo"></h1></code></pre> </p> <p>S'il vous plaît, aidez-moi à comprendre l'erreur que je fais. </p>
P粉139351297P粉139351297447 Il y a quelques jours487

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

  • P粉748218846

    P粉7482188462023-09-06 12:09:35

    Cela devrait fonctionner

    <html>
    
    <body>
    
      <h2>JavaScript Promise</h2>
    
      <p>Wait 3 seconds (3000 milliseconds) for this page to change.</p>
    
      <h1 id="demo"></h1>
    
      <script>
        const myPromise = new Promise(function(myResolve, reject) {
          setTimeout(() => {
            reject('I hate you');
          }, 3000);
        });
    
        myPromise.then(function(value) {
          document.getElementById("demo").innerHTML = value;
        }).catch(error => {
          console.log("Catching it");
          document.getElementById("demo").innerHTML = error;
        });
      </script>
    
    </body>
    
    </html>

    répondre
    0
  • P粉696891871

    P粉6968918712023-09-06 10:15:51

    myPromise.then(function(value) {
      document.getElementById("demo").innerHTML = value;
    }).catch( error => {
        console.log("Catching it");
        document.getElementById("demo").innerHTML = error;
    });

    Vous devez détecter l'erreur après .then

    répondre
    0
  • Annulerrépondre