J'ai essayé de faire des recherches sur la façon dont les fonctions asynchrones doivent être écrites. Après avoir parcouru une grande quantité de documentation, je n'ai toujours pas compris.
Comment écrire des fonctions asynchrones pour Node ? Comment mettre en œuvre correctement la gestion des événements d'erreur ?
Une autre façon de poser ma question serait la suivante : Comment dois-je interpréter la fonction suivante ?
var async_function = function(val, callback){
process.nextTick(function(){
callback(val);
});
};
Aussi, j'ai trouvé cette question sur le SO ("Comment puis-je créer une fonction asynchrone non bloquante dans node.js ?") intéressante. Je n'ai pas l'impression qu'on y ait encore répondu.
14 votes
C'est pour ça que je demande. Je ne vois pas en quoi ces fonctions sont différentes.
0 votes
Je vous recommande de regarder
setTimeout
ysetInterval
dans votre navigateur préféré et jouez avec eux également. Vous pouvez aussi utiliser des rappels ajax (ce qui se rapproche probablement le plus de l'expérience des nœuds), ou des écouteurs d'événements pour des choses qui vous sont familières, comme les événements de clic et de chargement. Le modèle asynchrone existe déjà dans le navigateur, et c'est exactement la même chose dans node.0 votes
@davin - Je suppose que je ne comprends pas bien le modèle asynchrone alors.
0 votes
@Kriem, j'ai répondu à quelque chose hier qui pourrait vous aider : stackoverflow.com/questions/6883648/ Ce n'est pas une réponse à votre question, mais c'est sur le sujet. Essayez de lire la question et la réponse et jouez avec le code pour essayer de comprendre ce qui se passe.
0 votes
@davin - Merci ! Lecture intéressante. L'asynchronisme avec ses fonctions de callback me laisse vraiment perplexe.
2 votes
@Raynos Quelle est la définition de "fonction asynchrone" ?
0 votes
Je pensais que tout ce qui utilise un socket (base de données, flux ) rend la fonction asynchrone, mais j'exclue peut-être d'autres cas où la fonction se comporte également de manière asynchrone.
0 votes
howtonode.org/understanding-process-next-tick
0 votes
Je vois beaucoup d'exemples utilisant setTimeout ou setInterval, mais je ne comprends pas pourquoi ils sont utilisés. Sont-ils utilisés pour simuler quelque chose, comme un exercice académique pour comprendre le fonctionnement des transactions asynchrones sans cas d'utilisation réel ou clair, ou sont-ils fondamentalement nécessaires pour toute fonction asynchrone indépendamment du cas d'utilisation et/ou des exigences de l'entreprise ?