Méthode correcte pour obtenir du code non bloquant dans Node.js
Dans la programmation asynchrone, les fonctions non bloquantes permettent à d'autres codes de s'exécuter simultanément sans attendre leur achèvement. Cependant, le simple fait d'envelopper le code dans une promesse, comme dans l'exemple ci-dessous, ne le rend pas véritablement non bloquant.
function longRunningFunc(val, mod) { return new Promise((resolve, reject) => { sum = 0; for (var i = 0; i < 100000; i++) { for (var j = 0; j < val; j++) { sum += i + j % mod } } resolve(sum) }) }
Malgré l'emballage du code dans une promesse, le programme attend avant d'imprimer, indiquant que le le code bloque.
Comprendre le code non bloquant
Dans Node.js, Le code JavaScript simple est intrinsèquement bloquant et s'exécute dans un seul thread. Aucune quantité d'encapsulation dans les promesses ou les API asynchrones ne peut le rendre non bloquant. Pour obtenir un comportement non bloquant, il faut utiliser des techniques qui déplacent l'exécution du code vers des threads externes ou adopter des API Node.js expérimentales pour les threads.
Obtenir un code non bloquant
Voici quelques façons de créer un véritable code non bloquant dans Node.js :
En mettant en œuvre des techniques non bloquantes, les applications Node.js peuvent gérer efficacement les opérations de longue durée sans gêner l'exécution d'autres codes, ce qui se traduit par une réactivité et une concurrence améliorées.
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!