Εκμάθηση υποσχέσεων Bluebird

Πίνακας περιεχομένων:

Anonim

Το Bluebird είναι μια πλήρης βιβλιοθήκη Promise για JavaScript. Το πιο δυνατό χαρακτηριστικό του Bluebird είναι ότι σας επιτρέπει να "υποσχεθείτε" άλλες ενότητες Node για να τις χρησιμοποιήσετε ασύγχρονα. Το Promisify είναι μια έννοια που εφαρμόζεται στις λειτουργίες επανάκλησης Αυτή η ιδέα χρησιμοποιείται για να διασφαλίσει ότι κάθε συνάρτηση επανάκλησης που ονομάζεται επιστρέφει κάποια τιμή.

Επομένως, εάν μια μονάδα Node JS περιέχει μια συνάρτηση επανάκλησης που δεν επιστρέφει μια τιμή και εάν υποσχεθούμε τη μονάδα κόμβου, όλες οι λειτουργίες σε αυτήν τη συγκεκριμένη μονάδα κόμβου θα τροποποιηθούν αυτόματα για να διασφαλιστεί ότι επιστρέφει μια τιμή.

Έτσι, μπορείτε να χρησιμοποιήσετε το BlueBird για να κάνετε τη μονάδα MongoDB να λειτουργεί ασύγχρονα. Αυτό προσθέτει μόνο ένα άλλο επίπεδο ευκολίας κατά τη σύνταξη εφαρμογών Node.js.

Θα δούμε ένα παράδειγμα του τρόπου χρήσης της μονάδας bluebird.

Το παράδειγμά μας θα δημιουργήσει πρώτα μια σύνδεση με τη «Συλλογή υπαλλήλων» στη βάση δεδομένων «EmployeeDB». Εάν δημιουργηθεί σύνδεση "τότε", τότε θα πάρει όλες τις εγγραφές στη συλλογή και θα τις εμφανίσει στην κονσόλα αναλόγως.

Δημιουργία υποσχέσεων με τη βιβλιοθήκη BlueBird

Βήμα 1) Εγκατάσταση των μονάδων NPM

Για να χρησιμοποιήσετε το Bluebird μέσα από μια εφαρμογή Node, απαιτείται η ενότητα Bluebird. Για να εγκαταστήσετε τη μονάδα Bluebird, εκτελέστε την παρακάτω εντολή

npm εγκατάσταση bluebird

Βήμα 2) Το επόμενο βήμα είναι να συμπεριλάβετε τη μονάδα bluebird στον κώδικά σας και να υποσχεθείτε σε ολόκληρη τη μονάδα MongoDB. Με το promisify, εννοούμε ότι το bluebird θα διασφαλίσει ότι κάθε μέθοδο που ορίζεται στη βιβλιοθήκη MongoDB επιστρέφει μια υπόσχεση.

Επεξήγηση κώδικα: -

  1. Η εντολή απαιτείται χρησιμοποιείται για να συμπεριλάβει τη βιβλιοθήκη Bluebird.
  2. Χρησιμοποιήστε τη μέθοδο .promisifyAll () του Bluebird για να δημιουργήσετε μια ασύγχρονη έκδοση κάθε μεθόδου που παρέχει η μονάδα MongoDB. Αυτό διασφαλίζει ότι κάθε μέθοδος της μονάδας MongoDB θα εκτελείται στο παρασκήνιο και διασφαλίζει ότι επιστρέφεται μια υπόσχεση για κάθε κλήση μεθόδου στη βιβλιοθήκη MongoDB.

Βήμα 3) Το τελευταίο βήμα είναι να συνδεθείτε στη βάση δεδομένων μας, να ανακτήσετε όλες τις εγγραφές στη συλλογή μας και να τις εμφανίσετε στο αρχείο καταγραφής της κονσόλας μας.

Επεξήγηση κώδικα: -

  1. Θα παρατηρήσετε ότι χρησιμοποιούμε τη μέθοδο "connectAsync" αντί της κανονικής μεθόδου σύνδεσης για σύνδεση στη βάση δεδομένων. Το Bluebird προσθέτει στην πραγματικότητα τη λέξη-κλειδί Async σε κάθε μέθοδο στη βιβλιοθήκη MongoDB για να διακρίνει εκείνες τις κλήσεις που επιστρέφουν υποσχέσεις και αυτές που όχι. Επομένως, δεν υπάρχει εγγύηση ότι οι μέθοδοι χωρίς τη λέξη Async θα επιστρέψουν μια τιμή.
  2. Παρόμοια με τη μέθοδο connectAsync, τώρα χρησιμοποιούμε τη μέθοδο findAsync για να επιστρέψουμε όλες τις εγγραφές στη συλλογή mongoDB «Employee».
  3. Τέλος, εάν το findAsync επιστρέψει μια επιτυχημένη υπόσχεση, τότε ορίζουμε ένα μπλοκ κώδικα για να επαναλάβουμε κάθε εγγραφή στη συλλογή και να τα εμφανίσουμε στο αρχείο καταγραφής της κονσόλας.

Εάν τα παραπάνω βήματα εκτελούνται σωστά, όλα τα έγγραφα της συλλογής υπαλλήλων θα εμφανίζονται στην κονσόλα όπως φαίνεται στην έξοδο παρακάτω.

Εδώ είναι ο κωδικός για την αναφορά σας

var Promise = require('bluebird');var mongoClient = Promise.promisifyAll(require('mongodb')).MongoClient;var url = 'mongodb://localhost/EmployeeDB';mongoClient.connectAsync('mongodb://localhost/EmployeeDB').then(function(db) {return db.collection('Employee').findAsync({})}).then(function(cursor) {cursor.each(function(err, doc) {console.log(doc);})});