"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment écrire des fonctions vraiment non bloquantes dans Node.js?

Comment écrire des fonctions vraiment non bloquantes dans Node.js?

Publié le 2025-03-10
Parcourir:312

How to Write Truly Non-Blocking Functions in Node.js?

Correct façon d'écrire une fonction non bloquante dans node.js

Le paradigm non bloquant est crucial dans node.js pour atteindre des performances élevées. Cependant, il peut être difficile d'écrire des fonctions vraiment non bloquantes qui n'entravent pas les progrès de la boucle d'événements.

Comprendre le comportement non bloquant

Le code enveloppe dans une promesse ne le rend pas intrinsèquement non bloquant. La fonction de promesse exécutrice est exécutée de manière synchrone, ce qui signifie que le code à long terme à l'intérieur bloquera l'exécution d'autres opérations.

Exemple: fonction de blocage de promesse

Mod) retourner la nouvelle promesse ((résoudre, rejeter) => { Soit sum = 0; pour (soit i = 0; i

function longRunningFunc(val, mod) {
    return new Promise((resolve, reject) => {
        let sum = 0;
        for (let i = 0; i  

Simulation de l'asynchronicité avec setTimeout

Une approche pour émuler le comportement non bloquant dans ce cas est d'utiliser setTimeout:

la fonction longrunningfunc (val, mod) { retourner la nouvelle promesse ((résoudre, rejeter) => { setTimeout (() => { Soit sum = 0; pour (soit i = 0; i

function longRunningFunc(val, mod) {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            let sum = 0;
            for (let i = 0; i 

True Non-Blocking Approaches

To create truly non-blocking functions, you need to use techniques that move code execution outside the main Node.js thread:

    Child Processes:
  • Create a separate process to handle Tâches de longue durée.
  • Threads de travailleur:
  • Utilisez la fonction de threads de travailleur expérimental dans Node.js pour créer plusieurs threads dans un seul processus. Threads.
  • API asynchrones existantes:
  • Opérations asynchrones fournies par node.js Core, telles que le fichier i / o avec fs.readfile, les demandes http avec http.get, ou database requêtes avec Mongoose.Connect.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3