Ασύγχρονη μετάδοση αποτελέσματος σε callback σε JavaScript
Ας υποθέσουμε τώρα ότι η ασύγχρονη λειτουργία μετά την ολοκλήρωσή της δεν εμφανίζει τίποτα στην κονσόλα, αλλά λαμβάνει ένα ορισμένο αποτέλεσμα. Ας είναι αυτό ένας πίνακας με δεδομένα που, για παράδειγμα, θα μπορούσε να είχε ληφθεί μέσω AJAX. Αλλά δεδομένου ότι δεν ξέρουμε ακόμα να δουλέψουμε με AJAX, τότε απλά θα προσομοιώσουμε αυτήν τη λήψη:
function make() {
setTimeout(function() {
let res = [1, 2, 3, 4, 5]; // πίνακας με αποτέλεσμα
}, 3000);
}
Ας κάνουμε έτσι ώστε ο πίνακας με το αποτέλεσμα να μεταδίδεται στην παράμετρο του callback:
function make(callback) {
setTimeout(function() {
let res = [1, 2, 3, 4, 5];
callback(res); // μεταδίδουμε το αποτέλεσμα ως παράμετρο
}, 3000);
}
Τώρα, κατά τη μεταβίβαση του callback στην κλήση της συνάρτησης
make μπορούμε να γράψουμε σε αυτό μια παράμετρο
- και σε αυτήν την παράμετρο θα πέσει το αποτέλεσμα της ασύγχρονης
λειτουργίας:
make(function(res) {
console.log(res); // ο πίνακας μας
});
Ολοκληρώστε τον κώδικα του callback έτσι ώστε να βρίσκει το άθροισμα των στοιχείων του πίνακα με το αποτέλεσμα.