Maison > interface Web > js tutoriel > le corps du texte

Apprendre Node.js en quelques jours avec l'IA - Jour 4

PHPz
Libérer: 2024-08-29 11:31:32
original
335 Les gens l'ont consulté

Learning Node.js in Days with AI - Day 4

Aujourd'hui, j'ai continué à apprendre Node.js avec l'aide de ChatGPT, et nous nous sommes concentrés sur la programmation asynchrone. C'est l'un des concepts les plus importants de Node.js, et je suis ravi d'avoir commencé à le maîtriser.

Théorie

Dans Node.js, la programmation asynchrone est cruciale en raison de son architecture non bloquante et basée sur les événements. Cela signifie que les opérations telles que la lecture de fichiers, les requêtes de base de données ou les requêtes réseau ne bloquent pas l'exécution d'autres codes en attendant un résultat.

Nous avons exploré trois manières principales de gérer les opérations asynchrones :

  1. Rappels : Fonctions passées en arguments à d'autres fonctions, qui sont exécutées une fois une opération asynchrone terminée.

    const fs = require('fs');
    
    fs.readFile('example.txt', 'utf8', (err, data) => {
        if (err) {
            console.error(err);
            return;
        }
        console.log(data);
    });
    
    Copier après la connexion
  2. Promesses : Objets représentant l'achèvement (ou l'échec) éventuel d'une opération asynchrone et sa valeur résultante. Les promesses permettent le chaînage et rendent le code plus lisible par rapport aux rappels imbriqués.

    const fs = require('fs').promises;
    
    fs.readFile('example.txt', 'utf8')
        .then(data => {
            console.log(data);
        })
        .catch(err => {
            console.error(err);
        });
    
    Copier après la connexion
  3. Async/Await : Sucre syntaxique construit sur Promises qui permet d'écrire du code asynchrone de manière synchrone.

    const fs = require('fs').promises;
    
    async function readFile() {
        try {
            const data = await fs.readFile('example.txt', 'utf8');
            console.log(data);
        } catch (err) {
            console.error(err);
        }
    }
    
    readFile();
    
    Copier après la connexion

Tâche pratique

Aujourd'hui, je me suis entraîné à convertir une fonction basée sur un rappel en une fonction basée sur une promesse.

Code original avec rappels :

const fs = require('fs');

function readFileCallback(path, callback) {
    fs.readFile(path, 'utf8', (err, data) => {
        if (err) {
            callback(err);
            return;
        }
        callback(null, data);
    });
}

readFileCallback('example.txt', (err, data) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log(data);
});
Copier après la connexion

Conversion en promesses :

const fs = require('fs').promises;

function readFilePromise(path) {
    return fs.readFile(path, 'utf8');
}

readFilePromise('example.txt')
    .then(data => {
        console.log(data);
    })
    .catch(err => {
        console.error(err);
    });
Copier après la connexion

Tâche indépendante

J'ai également écrit une fonction asynchrone utilisant async/await qui lit le contenu d'un fichier et l'enregistre sur la console. Si une erreur se produit (par exemple, fichier introuvable), il doit détecter l'erreur et la consigner.

const fs = require('fs').promises;

async function readFileAsync(path) {
    try {
        const data = await fs.readFile(path, 'utf8');
        console.log(data);
    } catch (err) {
        console.error(err);
    }
}

readFileAsync('example.txt');
Copier après la connexion

Ressources

Toutes les leçons créées par ChatGPT peuvent être trouvées sur : https://king-tri-ton.github.io/learn-nodejs

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal