Presque tous les endroits du nœud qui utilisent des fonctions de rappel sont asynchrones. Le code après la fonction de rappel est susceptible d'être exécuté avant le code de la fonction de rappel, en particulier les opérations de base de données. Bien entendu, node fournit également des versions synchrones de fonctions, telles que les opérations sur les fichiers. fs.readFileSync() est la version synchrone de fs.readFile().
Alors la question est : est-ce que forEach() est asynchrone ? Logiquement parlant, si Sync n'est pas ajouté, il devrait être asynchrone.
Exécutez le code ci-dessus et il reste bloqué sans aucune sortie. .
Donc, forEach() dans node est synchrone ! !
Quand j'ai utilisé node pour la première fois, je n'ai pas pensé à ce problème. Je l'ai écrit de manière synchrone. Cela m'est soudainement venu à l'esprit lorsque je l'écrivais. Après le test, j'ai eu une fausse alarme et j'ai pensé que le problème était grave. le code précédent était mal écrit.
Si dans certains cas, vous devez traiter forEach de manière asynchrone, vous pouvez effectuer une recherche sur Google et il existe un tableau de nœuds, vous pouvez l'essayer~~ Portail : https://github.com/cfsghost /node-array
Cette œuvre est créée par http://www.cnblogs.com/ImYZF