Cet article présente principalement le minuteur JS et les fonctionnalités asynchrones à thread unique. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
La première chose à dire est : timing Les méthodes liées au timer sont toutes des méthodes BOM, et le timer est utilisé pour exécuter un morceau de code dans un temps défini
, ou pour répéter le code dans un intervalle de temps donné. Fonctions spécifiques :
setTimeout(callback, delay);//delay一定的时间后,执行回调函数只执行一次 setInterval(callback, delay);//每隔一段时间执行一次callback,反复执行 clearInterval(timer);//清除定时
Les minuteries sont vraiment faciles à utiliser, mais elles ne sont pas faciles à utiliser. Pourquoi dites-vous cela ?
Nous savons que JS est monothread. Puisqu'il est monothread, il est facile que le thread soit bloqué
? --asynchrone!
Bien sûr, JS est monothread et ne peut pas être asynchrone, mais l'environnement hôte de JS (tel que le navigateur, le nœud) est multithread
, et l'environnement hôte est piloté d'une manière ou d'une autre (par exemple : basé sur les événements du nœud) Cela confère à JS des fonctionnalités asynchrones.
Pourquoi parlez-vous soudainement de JS asynchrone monothread ? Étant donné que l'événement timer sera traité de manière asynchrone par JS, qu'est-ce que cela signifie ?
Dans le code :
var num = 1; setTimeout(function() { num++; console.log(num); }, 1000); console.log(num); //结果并是不(2,1)而是(1,2)
Pourquoi ça ? Comme mentionné précédemment, JS traitera l'événement timer de manière asynchrone, ce qui signifie qu'il n'attendra pas que l'événement timer
soit traité avant d'exécuter le code suivant, mais insérera directement l'événement timer dans l'événement après l'avoir entré. la file d'attente, exécutez directement le code ci-dessous
Lorsque l'événement timer est terminé, JS se retournera et exécutera la partie de rappel du code de l'événement timer. C'est asynchrone !
Asynchrone peut efficacement empêcher le blocage du thread JS, et il sera très efficace, permettant à JS de faire plus de choses
avec des ressources limitées, ce qui est incroyable. (Nous serons exposés à de nombreux problèmes asynchrones dans node)
Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. Pour plus de contenu connexe, veuillez prêter attention au. Site Web chinois PHP !
Recommandations associées :
Programmation asynchrone JS - Promise, Generator, async/await
Introduction à la programmation asynchrone JS
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!