⊗jsSpPrmEx 163 of 294 menu

Εξαιρετικές καταστάσεις στις Προϋποσχέσεις (Promises) στο JavaScript

Ας μάθουμε τώρα πώς να χειριζόμαστε εξαιρετικές καταστάσεις που προκύπτουν μέσα σε μια προϋπόσχεση. Σε περίπτωση που προκύψει μια τέτοια κατάσταση, πρέπει να απορρίψουμε την προϋπόσχεση χρησιμοποιώντας μια ειδική συνάρτηση απόρριψης, η οποία περνά αυτόματα στη δεύτερη παράμετρο της συνάρτησης της προϋπόσχεσης:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { ... }, 3000); });

Μέσα στη συνάρτηση της προϋπόσχεσης πρέπει να καλέσουμε resolve, αν όλα πήγαν κανονικά, ή reject, αν προέκυψε εξαιρετική κατάσταση:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { let isError = false; if (!isError) { resolve([1, 2, 3, 4, 5]); // δεδομένα της προϋπόσχεσης } else { reject('error in promise'); // το κείμενο του σφάλματός σας } }, 3000); });

Στη συνέχεια, στη μέθοδο then θα πρέπει να περάσετε ως παραμέτρους όχι μία, αλλά δύο συναρτήσεις: η πρώτη θα εκτελεστεί αν η προϋπόσχεση εκπληρώθηκε κανονικά (resolved), και η δεύτερη - αν εκπληρώθηκε με σφάλμα (rejected):

promise.then( function(result) { console.log(result); // θα εμφανίσει το αποτέλεσμα της προϋπόσχεσης }, function(error) { console.log(error); // θα εμφανίσει το κείμενο του σφάλματος } );

Ως κανόνας, ο παραπάνω κώδικας γράφεται πιο συμπαγή, ως εξής:

promise.then(function(result) { console.log(result); // θα εμφανίσει το αποτέλεσμα της προϋπόσχεσης }, function(error) { console.log(error); // θα εμφανίσει το κείμενο του σφάλματος });

Δημιουργήστε ασύγχρονο κώδικα που θα παράγει τυχαίους αριθμούς από 0 έως 5. Τυλίξτε το όλο αυτό σε μια προϋπόσχεση. Αφήστε την προϋπόσχεση ως αποτέλεσμά της να επιστρέφει το αποτέλεσμα της διαίρεσης της μονάδας με τον τυχαίο αριθμό. Αφήστε την προϋπόσχεση να απορριφθεί, αν έγινε διαίρεση με το μηδέν, και να εκπληρωθεί επιτυχώς σε όλες τις άλλες περιπτώσεις.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη