Maison > Questions et réponses > le corps du texte
1. Comme la question, je souhaite poser une question sur le mécanisme js. Est-il nécessaire d'attendre la fin de l'exécution du thread principal avant d'exécuter des opérations asynchrones ?
2. Explication détaillée du mécanisme d'exécution de JavaScript : reparlons de la boucle d'événement. La plupart des gens ont lu cet article. Ce que Ruan Laoshi a dit est : ce n'est qu'une fois l'exécution du thread principal terminée que la file d'attente des tâches sera lue.
3. Aujourd'hui, j'ai entendu le terme contexte, qui signifie probablement qu'une opération asynchrone n'attend que que le thread principal du même contexte termine son exécution. sans attendre un autre contexte. Je cherche depuis longtemps aujourd'hui, mais je n'ai trouvé aucun article similaire. Merci de me répondre ! !
过去多啦不再A梦2017-07-05 11:09:37
Vous avez confondu beaucoup de choses, ainsi que l'article de Ruan Yifeng. . . La critique, c'est la lecture. . Son article. . Il existe encore de nombreuses idées fausses. .
Ce qui suit est une annotation de Pu Ling : vous pouvez y jeter un œil pour référence
Pu Ling version annotée
Documentation officielle de NodeJS Evenloop Process.nextTick Timers Relation
Je crois comprendre que le thread principal du nœud exécute le code du thread. Seules les E/S de fichier, les E/S réseau et la minuterie sont des événements asynchrones et entreront dans la file d'attente asynchrone. Habituellement, le code que vous écrivez est synchrone. vous avez Voici un programme
setTimeout(function(){
console.log('test');
},10);//本来应该是10ms后输出test
for(var i=0;i<10000000;i++){
//但是这个空的for循环执行了50ms
}
//for占住了主线程,倒地timer 事件已经到达触发条件,但是主线程被占用
//不能去请求完成的事件队列。
//所以test 会在50ms后输出
Quant à la notion de contexte, je ne la comprends pas bien. Je ne sais pas laquelle inclure. J'espère que quelqu'un pourra me donner des conseils. . Bienvenue pour critiquer ou critiquer, dites-moi s'il vous plaît où je me trompe. . Hé hé