Table des matières
Demander
Soumettre des doutes
Autre confirmation des points de connaissance
Maison interface Web js tutoriel ChatGPT m'aide à apprendre [js-async/await]

ChatGPT m'aide à apprendre [js-async/await]

Apr 14, 2023 pm 02:47 PM
javascript

Cette question implique de poser des questions sur l'utilisation, de remettre en question les doutes et de confirmer la maîtrise~

Demander

js sync wait Parlez-moi, c'est encore un peu déroutant

En JavaScript, nous avons souvent besoin de gérer des tâches asynchrones, telles que obtenir des données du serveur, envoyer des données au serveur, etc. La méthode traditionnelle consiste à utiliser des fonctions de rappel pour gérer des tâches asynchrones, ce qui entraînera un enfer de rappel lorsqu'elles sont imbriquées à plusieurs niveaux, rendant le code difficile à maintenir et à déboguer. Pour résoudre ce problème, JavaScript a introduit Promise et async/await pour gérer les tâches asynchrones.

Parmi eux, async/await est un nouveau sucre syntaxique dans ES8, qui peut gérer les tâches asynchrones de manière plus simple et intuitive. Concernant async/await, vous pouvez le comprendre à partir des points suivants :

  1. La fonction asynchrone est une fonction asynchrone qui renvoie un objet Promise Vous pouvez utiliser le mot-clé wait pour attendre le résultat d'une opération asynchrone. processus, la fonction asynchrone libérera le processeur et permettra l'exécution d'autres tâches. Le mot-clé

  2. await ne peut être utilisé que dans les fonctions asynchrones. Il peut attendre le résultat d'un objet Promise. Si l'objet Promise devient l'état résolu, la valeur de l'expression wait est le résultat renvoyé par la Promise ; L'objet Promise devient l'état rejeté, une erreur sera générée et interceptée par le bloc try-catch.

  3. Il peut y avoir plusieurs expressions d'attente dans la fonction asynchrone, et elles sont exécutées séquentiellement. Les expressions d'attente suivantes doivent attendre que l'expression d'attente précédente soit terminée avant de s'exécuter.

  4. L'utilisation de async/await peut écrire du code asynchrone sous une forme similaire au code synchrone. Le code est plus lisible et compréhensible, et plus facile à déboguer et à maintenir.

Ce qui suit est un exemple d'utilisation de async/await pour gérer des tâches asynchrones :

async function getData() {
  try {
    const result1 = await fetch('/api/data1'); // 等待获取数据1
    const result2 = await fetch('/api/data2'); // 等待获取数据2
    return [result1, result2]; // 返回获取的数据
  } catch (error) {
    console.error(error); // 捕获错误并输出到控制台
  }
}

getData().then(data => {
  console.log(data); // 输出获取的数据
});
Copier après la connexion

Dans l'exemple ci-dessus, la fonction getData est déclarée à l'aide du mot-clé async et le mot-clé wait est utilisé dans la fonction pour attendre le résultat de l'opération asynchrone, utilisé ici Deux expressions d'attente sont utilisées pour obtenir respectivement des données différentes. Dans cet exemple, les tableaux de résultats de deux opérations asynchrones sont finalement renvoyés. Si une exception se produit, elle sera interceptée par le bloc try-catch et les informations d'erreur seront générées. Enfin, nous obtenons les données asynchrones en appelant la méthode getData() et envoyons les données sur la console après avoir renvoyé le résultat.

Soumettre des doutes

Je me sens très confus. Await, c'est attendre la fonction asynchrone correspondante, alors pourquoi devrions-nous ajouter async à la fonction qui utilise wait

Très bonne question ! La réponse est : parce que le mot-clé wait ne peut être utilisé que dans les fonctions asynchrones.

Lorsque nous utilisons une fonction asynchrone pour obtenir le résultat d'une tâche asynchrone, nous devons la placer dans une fonction async, puis utiliser await pour attendre le résultat de le fonctionnement asynchrone. Par conséquent, si vous souhaitez utiliser le mot-clé wait, la fonction doit être déclarée comme fonction asynchrone. D'un autre côté, si vous n'utilisez pas de fonction asynchrone, vous ne pouvez pas utiliser wait dans cette fonction. async 函数内部,然后使用 await 等待异步操作的结果。因此,若想使用 await 关键字,必须将该函数声明为 async 函数。反之,如果没有使用 async 函数,就不能在该函数中使用 await。

换句话说,只有当一个函数被声明为 async 函数时,该函数才能够包含 await 关键字,这也是 async/await 语法的基本前提。声明函数为 async 是告诉 JS 引擎该函数执行可能会返回 Promise,从而让 JS 引擎在执行该函数时进行特殊的处理。

需要注意的是,使用 await 来等待异步任务的结果并不一定要在函数内部立即返回 Promise 对象,因为 await

En d'autres termes, ce n'est que lorsqu'une fonction est déclarée comme fonction asynchrone que la fonction peut contenir le mot-clé wait, qui est également la prémisse de base de la syntaxe async/await. Déclarer une fonction comme asynchrone indique au moteur JS que la fonction peut renvoyer une promesse, permettant au moteur JS d'effectuer un traitement spécial lors de l'exécution de la fonction.

Il est à noter que l'utilisation de wait pour attendre le résultat d'une tâche asynchrone ne renvoie pas nécessairement l'objet Promise immédiatement à l'intérieur de la fonction, car le processus d'exécution du mot-clé await est similaire à l'exécution processus de l’appel de la chaîne Promise, un objet Promise sera également automatiquement créé et renvoyé.

En général, async et wait sont le sucre syntaxique qui constitue le style de programmation asynchrone Promise. Ils rendent le code asynchrone plus intuitif et lisible, nous permettant d'utiliser du code de style synchrone pour écrire et traiter du code d'opération asynchrone.

Confirmez votre compréhension

Oh, en fait la marque asynchrone ne modifie pas la fonction, n'est-ce pas ? Je pensais au départ que cette marque transformerait une fonction en fonction asynchrone pour l'exécution

Vous avez raison ! En fait, le mot-clé async ne transforme pas directement une fonction en exécution de fonction asynchrone. Il indique simplement au moteur JavaScript qu'il peut y avoir des opérations asynchrones à l'intérieur de la fonction et que l'exécution de la fonction peut devoir être suspendue lors de l'utilisation du mot-clé wait.

En d'autres termes, le mot-clé async ne change pas la nature de la fonction, mais fournit un moyen plus pratique de gérer les opérations asynchrones. Lorsque la fonction asynchrone est appelée, elle renverra un objet Promise et le code à l'intérieur de la fonction asynchrone sera automatiquement encapsulé dans la méthode de résolution de l'objet Promise au moment de l'exécution. Lorsque vous utilisez le mot clé wait dans une fonction asynchrone pour attendre la fin d'une opération asynchrone, la fonction suspend l'exécution jusqu'à ce que l'opération asynchrone renvoie un résultat ou génère une erreur.

De plus, il convient de noter que lors de l'utilisation de l'instruction return pour renvoyer une valeur dans une fonction asynchrone, la valeur renvoyée sera regroupée dans un objet Promise par Promise.resolve(), et la valeur de l'objet Promise est la valeur renvoyée par l'instruction return. Si une exception est levée dans la fonction asynchrone, elle sera enveloppée dans un objet Promise par Promise.reject() et renvoyée à l'appelant. 🎜🎜Ainsi, nous pouvons utiliser async/await avec du code de style Promise pour créer un modèle de programmation asynchrone plus simple et plus intuitif. 🎜

Autre confirmation des points de connaissance

Donc, async est une représentation du traitement des opérations asynchrones, pas une syntaxe pour créer des opérations asynchrones

Oui, votre compréhension est très précise. async est une représentation pour gérer les opérations asynchrones, pas une syntaxe pour créer des opérations asynchrones.

En fait, JavaScript dispose déjà de certains mécanismes pour gérer les opérations asynchrones, tels que setTimeout, XMLHttpRequest, fetch, etc. Ces mécanismes sont basés sur le modèle de programmation asynchrone de la boucle d'événements et sont largement utilisés dans diverses applications JavaScript.

Cependant, ces mécanismes présentent certains problèmes, comme un enfer de rappel et une mauvaise lisibilité du code. Afin de résoudre ces problèmes, Promise et async/await ont été introduits en tant que nouvelle méthode de programmation asynchrone et sont rapidement devenus largement utilisés.

Dans ce processus, la fonction asynchrone joue un rôle important dans le traitement des opérations asynchrones. Il fournit une forme de code plus intuitive et facile à comprendre et permet aux développeurs JavaScript de mieux maîtriser la technologie de programmation asynchrone. Par conséquent, nous pouvons considérer les fonctions asynchrones comme un complément au modèle de code de style Promise pour obtenir une programmation asynchrone plus flexible et plus efficace.


Une bonne enquête~                                                                                     

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 pm 02:54 PM

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel Dec 17, 2023 pm 05:30 PM

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Dec 17, 2023 pm 12:09 PM

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 am 09:39 AM

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de réservation en ligne. À l'ère numérique d'aujourd'hui, de plus en plus d'entreprises et de services doivent fournir des fonctions de réservation en ligne. Il est crucial de mettre en place un système de réservation en ligne efficace et en temps réel. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples de code spécifiques. 1. Qu'est-ce que WebSocket ? WebSocket est une méthode full-duplex sur une seule connexion TCP.

JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel Dec 17, 2023 pm 05:13 PM

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Comment utiliser insertBefore en javascript Comment utiliser insertBefore en javascript Nov 24, 2023 am 11:56 AM

Utilisation : En JavaScript, la méthode insertBefore() est utilisée pour insérer un nouveau nœud dans l'arborescence DOM. Cette méthode nécessite deux paramètres : le nouveau nœud à insérer et le nœud de référence (c'est-à-dire le nœud où le nouveau nœud sera inséré).

Comment obtenir facilement le code d'état HTTP en JavaScript Comment obtenir facilement le code d'état HTTP en JavaScript Jan 05, 2024 pm 01:37 PM

Introduction à la méthode d'obtention du code d'état HTTP en JavaScript : Dans le développement front-end, nous devons souvent gérer l'interaction avec l'interface back-end, et le code d'état HTTP en est une partie très importante. Comprendre et obtenir les codes d'état HTTP nous aide à mieux gérer les données renvoyées par l'interface. Cet article explique comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournit des exemples de code spécifiques. 1. Qu'est-ce que le code d'état HTTP ? Le code d'état HTTP signifie que lorsque le navigateur lance une requête au serveur, le service

See all articles