Maison > interface Web > js tutoriel > le corps du texte

Explication détaillée des exemples de programmation asynchrone JS

小云云
Libérer: 2018-02-28 11:31:14
original
1466 Les gens l'ont consulté

L'environnement d'exécution du langage JS est « monothread ». Pourquoi la programmation asynchrone se produit-elle ?

Un seul fil de discussion signifie qu'une seule tâche peut être effectuée à la fois. S'il y a plusieurs tâches, elles doivent être mises en file d'attente et attendre que la tâche précédente soit terminée avant de pouvoir exécuter la tâche suivante.

Deux modes d'exécution des tâches : synchrone et asynchrone
"Mode asynchrone" :
La fonction de rappel est la méthode la plus basique de programmation asynchrone. Chaque tâche a une ou plusieurs fonctions de rappel.Une fois la tâche précédente exécutée, la tâche suivante n'est pas exécutée, mais la fonction de rappel est exécutée une fois la tâche précédente terminée, donc l'ordre d'exécution du programme est. cohérent avec la tâche. L’ordre de tri est incohérent et asynchrone.
Quatre méthodes de programmation asynchrone :

1. Fonction de rappel
Il s'agit de la méthode la plus basique de programmation asynchrone.
Supposons qu'il y ait deux fonctions f1 et f2, et que cette dernière attend le résultat de l'exécution de la première.
Si f1 est une tâche fastidieuse, vous pouvez écrire f2 comme fonction de rappel de f1.

function f1(callback){ 

  setTimeout(function(){ 

  //f1的任务代码 

  callback(); 

  },1000); 

  }
Copier après la connexion

Exécuter le code

f1(f2)
L'avantage d'utiliser cette méthode est qu'elle est simple et facile à comprendre et à déployer. L'inconvénient est qu'elle n'est pas propice à la lecture et à la maintenance du code. Les différentes parties sont fortement couplées, le processus sera très déroutant et une seule. une fonction de rappel peut être spécifiée pour chaque tâche.

2. Surveillance des événements
Adoptez le mode piloté par les événements. L'exécution d'une tâche ne dépend pas de l'ordre du code, mais de la survenance d'un événement.
Tout d'abord, liez un événement à f1 (en utilisant la méthode d'écriture jQuery).

f1.on(‘done’,f2); 

  //当f1发生done事件,就执行f2。然后对f1进行改写:
Copier après la connexion

est le suivant :

fuction f1(){ 

  setTimeout(function(){ 

  //f1的任务代码 

  f1.trigger(‘done’); 

  },1000); 

  }
Copier après la connexion

f1.tigger('done') signifie qu'une fois l'exécution terminée, l'événement done est déclenché immédiatement, commençant ainsi l'exécution de f2.
Les avantages de cette méthode sont : elle est facile à comprendre, peut lier plusieurs événements, chaque événement peut spécifier plusieurs fonctions de rappel et peut être découplé, ce qui est propice à la modularisation.
Inconvénients : l'ensemble du programme doit être piloté par des événements et le processus en cours deviendra très flou.

Recommandations associées :

Introduction à 4 méthodes de programmation asynchrone Javascript

Explication détaillée des fonctions de rappel et exemples d'utilisation du gestionnaire de javascript asynchrone programmation

Introduction aux méthodes de programmation asynchrone Javascript

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal