Maison  >  Article  >  interface Web  >  Comment utiliser les méthodes asynchrones pour la programmation asynchrone dans Node.js

Comment utiliser les méthodes asynchrones pour la programmation asynchrone dans Node.js

PHPz
PHPzoriginal
2023-04-17 15:00:37869parcourir

Node.js est un environnement d'exécution JavaScript construit sur le moteur JavaScript Chrome V8. Il peut implémenter des opérations d'E/S non bloquantes et basées sur des événements, il est donc largement utilisé dans le développement Web. Dans Node.js, l’utilisation de méthodes asynchrones est également très importante. Grâce à des méthodes asynchrones, les opérations de données et les requêtes réseau peuvent être effectuées plus efficacement, et d'énormes avantages en termes de performances peuvent être obtenus dans les applications Web à grande échelle. Cet article explique comment utiliser la méthode asynchrone pour la programmation asynchrone dans Node.js.

1. Qu'est-ce que la méthode asynchrone

Dans Node.js, les opérations asynchrones sont implémentées via des fonctions de rappel. La méthode asynchrone commence à s'exécuter après réception de la requête et ne bloque pas l'exécution du code suivant. Lorsque l'opération asynchrone se termine, la fonction de rappel est exécutée et le résultat est transmis à la fonction de rappel pour un traitement ultérieur.

Par exemple, dans Node.js, l'opération de lecture d'un fichier utilise généralement la méthode readFile du module fs, et utilise une fonction de rappel pour traiter les données lues.

const fs = require('fs');

fs.readFile('test.txt', (err, data) => {
    if (err) throw err;
    console.log(data);
});

Le code ci-dessus est une méthode asynchrone. Après avoir lu les données, une fonction de rappel est exécutée pour traiter les données. Cependant, si nous devons appeler plusieurs méthodes asynchrones en continu, comment garantir leur ordre d’exécution et le traitement des résultats ? Pour le moment, vous devez utiliser la méthode asynchrone.

async est un outil de contrôle de processus pour les opérations asynchrones, qui permet d'exécuter plusieurs opérations asynchrones dans un ordre spécifié et peut gérer les exceptions lors de l'exécution d'opérations asynchrones. Grâce à l'async, non seulement les méthodes asynchrones peuvent être exécutées dans l'ordre, mais le code peut également être rendu plus concis et plus facile à comprendre.

2. Méthodes courantes dans la méthode async

  1. async.waterfall

La méthode async.waterfall consiste à exécuter plusieurs opérations asynchrones en séquence et à transmettre le résultat d'une opération asynchrone à l'opération asynchrone suivante. Son utilisation est la suivante :

async.waterfall([
    (callback) => {
        // 异步操作一
        callback(null, 'one', 'two');
    },
    (arg1, arg2, callback) => {
        // 异步操作二
        callback(null, 'three');
    },
    (arg1, callback) => {
        // 异步操作三
        callback(null, 'done');
    }
], (err, result) => {
    if (err) throw err;
    console.log(result);
});

Dans le code ci-dessus, nous définissons trois opérations asynchrones, et un rappel sera appelé pour renvoyer le résultat dans chaque opération asynchrone. Dans la fonction de rappel, le premier paramètre représente les informations d'erreur, ou null s'il n'y a pas d'erreur, et les paramètres suivants sont les paramètres qui doivent être transmis à la prochaine opération asynchrone. Dans la fonction de rappel finale, le résultat sera transmis pour traitement.

  1. Méthode async.series

La méthode async.series est utilisée pour exécuter plusieurs opérations asynchrones en séquence, et le résultat de chaque opération asynchrone sera transmis à l'opération suivante. Son utilisation est la suivante :

async.series([
    (callback) => {
        // 异步操作一
        callback(null, 'one');
    },
    (callback) => {
        // 异步操作二
        callback(null, 'two');
    },
    (callback) => {
        // 异步操作三
        callback(null, 'three');
    }
], (err, result) => {
    if (err) throw err;
    console.log(result);
});

Dans le code ci-dessus, nous définissons trois opérations asynchrones, chaque opération asynchrone renverra le résultat de l'opération asynchrone. Dans la fonction de rappel finale, tous les résultats seront transmis pour traitement.

  1. Méthode async.parallel

La méthode async.parallel est utilisée pour exécuter plusieurs opérations asynchrones en parallèle. Son utilisation est la suivante :

async.parallel([
    (callback) => {
        // 异步操作一
        callback(null, 'one');
    },
    (callback) => {
        // 异步操作二
        callback(null, 'two');
    },
    (callback) => {
        // 异步操作三
        callback(null, 'three');
    }
], (err, result) => {
    if (err) throw err;
    console.log(result);
});

Dans le code ci-dessus, nous avons défini trois opérations asynchrones, et ces trois opérations sont exécutées en parallèle. Dans la fonction de rappel finale, tous les résultats seront transmis pour traitement.

  1. Méthode async.each

La méthode async.each est utilisée pour parcourir un tableau ou un objet et effectuer des opérations asynchrones sur chaque élément. Après l'exécution de chaque opération asynchrone, la fonction de rappel est appelée. S'il y a une erreur, il apparaîtra immédiatement et renverra un message d'erreur. Son utilisation est la suivante :

async.each(['file1', 'file2', 'file3'], (item, callback) =>{
    // 异步操作
    callback(null);
}, (err) => {
    if (err) throw err;
    console.log('done');
});

Dans le code ci-dessus, nous parcourons un tableau de chaînes et effectuons une opération asynchrone sur chaque élément. Dans la fonction de rappel finale, tous les résultats seront transmis pour traitement.

3. Résumé

En utilisant la méthode asynchrone, plusieurs opérations asynchrones peuvent être exécutées dans un ordre spécifié et les exceptions qui se produisent lors de l'exécution d'opérations asynchrones peuvent être gérées. Dans Node.js, la programmation asynchrone est très importante car elle peut effectuer des opérations de données et des requêtes réseau plus efficacement, ce qui peut générer d'énormes avantages en termes de performances dans les applications Web à grande échelle. Bien apprendre la programmation asynchrone est une base importante pour devenir un excellent développeur Node.js.

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!

Déclaration:
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