javascript - problème de mécanisme js, devons-nous attendre que le thread principal termine son exécution avant de s'exécuter de manière asynchrone si le thread principal contient des dizaines de milliers de lignes, ou est-ce lié au contexte ?
为情所困
为情所困 2017-07-05 11:07:37
0
1
978

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 ! !

为情所困
为情所困

répondre à tous(1)
过去多啦不再A梦

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

  1. Pu Ling version annotée

  2. 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é

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal