⊗jsSpACEx 158 of 294 menu

Εξαιρέσεις σε Ασύγχρονες Callbacks σε JavaScript

Ας υποθέσουμε ότι, εάν η παράμετρος make περνάει τον αριθμό ενός μη υπάρχοντος στοιχείου του πίνακα - αυτή είναι μια εξαιρετική κατάσταση. Όπως ήδη γνωρίζετε, οι εξαιρέσεις που προκύπτουν μέσα σε μια ασύγχρονη συνάρτηση, δεν μπορούν να πιαστούν μέσω try-catch. Στην περίπτωσή μας, μια εξαίρεση που προκύπτει μέσα στο make ή στο callback, δεν θα πιαστεί:

try { make(10, function(res) { console.log(res); }); } catch(err) { // δεν θα πιαστεί }

Στην προσέγγιση callback δουλεύουν με εξαιρέσεις ως εξής: στην πρώτη παράμετρο του callback στέλνουν το αποτέλεσμα, και στη δεύτερη - το σφάλμα. Σε αυτήν την περίπτωση, ο χειρισμός σφαλμάτων γίνεται ως εξής:

make(10, function(res, err) { if (!err) { console.log(res); // δεν προέκυψε σφάλμα, τυπώνουμε το αποτέλεσμα } else { console.log(err); // προέκυψε σφάλμα, τυπώνουμε το κείμενό του } });

Ας μετατρέψουμε τον κώδικα της συνάρτησής μας make σύμφωνα με τα παραπάνω:

function make(num, callback) { setTimeout(function() { let arr = [1, 2, 3, 4, 5]; let err; if (arr[num] === undefined) { err = 'elem not exists'; // κείμενο σφάλματος } else { err = null; // δεν υπάρχει σφάλμα } callback(arr[num], err); }, 3000); }
Ελληνικά
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 για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη