Table des matières
Grammaire
Exemple 1 (Engagement de base)
Exemple 2 (Promesses imbriquées)
Exemple 3 (Promesse enchaînée)
Maison interface Web js tutoriel Comment utiliser Typescript avec ES6 Promise native ?

Comment utiliser Typescript avec ES6 Promise native ?

Aug 22, 2023 pm 08:01 PM

如何在原生ES6 Promise中使用Typescript?

Dans la version ES6 d'ECMAScript, des promesses ont été introduites pour la première fois.

Pour utiliser les promesses ES6 dans le projet TypeScript, les utilisateurs doivent modifier le fichier tsconfig.json

.

Ajoutez le code suivant dans l'objet 'compilerOptions'.

{
   "compilerOptions": {
      "target": "es6",
   }
}
Copier après la connexion

De plus, les utilisateurs peuvent ajouter « ES6 » dans l'attribut « lib » ci-dessous.

{
   "compilerOptions": {
      "lib": [
         "es6",
         "dom"
      ],
   }
}
Copier après la connexion

Cependant, les utilisateurs peuvent également utiliser les versions ultérieures d'ECMAScript car elles prennent en charge les promesses natives dans TypeScript. Par exemple, es7, es10, etc.

Dans TypeScript, les promesses natives font référence aux promesses créées à l'aide du constructeur Promise() dans le code TypeScript. Cependant, nous pouvons résoudre les promesses renvoyées par toute requête API.

Ces promesses peuvent avoir les trois états suivants.

  • En attente - Cela signifie que l'engagement n'est pas encore terminé.

  • Terminé - Cela signifie que la promesse s'est terminée avec succès sans aucune erreur.

  • Rejeté - Cela signifie que la promesse s'est terminée avec une erreur.

Grammaire

Les utilisateurs peuvent utiliser Promise native dans TypeScript selon la syntaxe suivante.

const promise = new Promise((resolve, reject) => {
   
   // resolve or reject the promise
});
promise
.then(() => {
   
   // show results
})
.catch(() => {
   
   // show error
});
Copier après la connexion

Dans la syntaxe ci-dessus, nous avons créé une promesse à l'aide du constructeur Promise() et géré le résultat et l'erreur dans les blocs then() et catch() respectivement. De plus, « T » représente le type de retour lorsque la promesse se termine avec succès.

Exemple 1 (Engagement de base)

Dans l'exemple suivant, nous apprendrons à utiliser essentiellement la promesse native ES6 dans TypeScript. Nous avons créé deux promesses nommées first_promise et second_promise. Nous avons résolu first_promise et rejeté second_promise.

De plus, les utilisateurs peuvent voir que le type de retour de la promesse est une chaîne. Lorsque la première promesse est résolue avec succès, le contrôle d'exécution passe au bloc then() ; lorsque la deuxième promesse est rejetée, le contrôle d'exécution passe au bloc catch().

// resolving a promise
const first_promise = new Promise((res, rej) => {
   res("First promise resolved");
});
first_promise
.then((result: string) => {
   console.log(result);
})
.catch((err) => {
   console.log(err);
});

// rejecting a promise
const second_promise = new Promise((res, rej) => {
   rej("Second promise rejected");
});
second_promise
.then((result: string) => {
   console.log(result);
})
.catch((err) => {
   console.log(err);
});
Copier après la connexion

Une fois compilé, il générera le code JavaScript suivant.

// resolving a promise
var first_promise = new Promise(function (res, rej) {
   res("First promise resolved");
});
first_promise
.then(function (result) {
   console.log(result);
})["catch"](function (err) { 
   console.log(err);
});

// rejecting a promise
var second_promise = new Promise(function (res, rej) {
   rej("Second promise rejected");
});
second_promise
.then(function (result) {
   console.log(result);
})["catch"](function (err) {
   console.log(err);
});
Copier après la connexion

Exemple 2 (Promesses imbriquées)

Dans l'exemple ci-dessous, nous montrons comment utiliser les promesses imbriquées. Nous avons créé external_promise en utilisant le mot-clé new et le constructeur Promise(). Dans la fonction de rappel de external_promise, nous créons une nouvelle sous-promesse et résolvons la sous-promesse.

Dans le résultat, l'utilisateur peut observer que la external_promise se résout avec succès en tant que sous-promesse. Si nous rejetons la sous-promesse, la external_promise sera également rejetée.

// resolving a promise
const outer_promise = new Promise((res) => {
   res(
      new Promise((resChild) => {
         resChild("Child Promise Resolved");
      })
   );
});
outer_promise
.then((result: string) => {
      console.log(result);
})
.catch((err) => {
   console.log(err);
}); 
Copier après la connexion

Une fois compilé, il générera le code JavaScript suivant.

// resolving a promise
var outer_promise = new Promise(function (res) {
   res(new Promise(function (resChild) {
      resChild("Child Promise Resolved");
   }));
});
outer_promise
.then(function (result) {
   console.log(result);
})["catch"](function (err) {
   console.log(err);
});
Copier après la connexion
La traduction chinoise de

Exemple 3 (Promesse enchaînée)

est :

Exemple 3 (Promesse enchaînée)

Dans l'exemple ci-dessous, nous affichons les promesses chinoises en TypeScript. Comme son nom l’indique, il s’agit d’une série de promesses. Ici, lorsque nous résolvons numeric_promise, nous renvoyons une valeur numérique.

Nous avons obtenu 10 comme résultat dans le bloc then(). Après cela, nous multiplions le résultat par 2 et le renvoyons. Nous pouvons obtenir la valeur renvoyée par le premier bloc then() à l’intérieur du deuxième bloc then(), et ainsi de suite. Si une erreur se produit, le contrôle passe directement au bloc catch().

Dans la sortie, l'utilisateur peut observer que la valeur du résultat dans chaque bloc then() est doublée.

// resolving a promise
const numeric_promise = new Promise((res) => {
   res(10);
});
numeric_promise
.then((result: number) => {
   console.log("The result in the first then() block is - " + result);
   return result * 2;
})
.then((result: number) => {
   console.log("The result in the second then() block is - " + result);
   return result * 2;
})
.then((result: number) => {
   console.log("The result in the third then() block is - " + result);
   return result * 2;
})
.then((result: number) => {
   console.log("The result in the fourth then() block is - " + result);
})
.catch((err) => {
   console.log(err);
}); 
Copier après la connexion

Après la compilation, le code JavaScript suivant sera généré. Résoudre une promesse

var numeric_promise = new Promise(function (res) {
   res(10);
});
numeric_promise
.then(function (result) {
   console.log("The result in the first then() block is - " + result);
   return result * 2;
})
.then(function (result) {
   console.log("The result in the second then() block is - " + result);
   return result * 2;
})
.then(function (result) {
   console.log("The result in the third then() block is - " + result);
   return result * 2;
})
.then(function (result) {
   console.log("The result in the fourth then() block is - " + result);
})["catch"](function (err) {
   console.log(err);
}); 
Copier après la connexion

Les utilisateurs ont appris à utiliser les promesses natives d'ES6 dans TypeScript. Nous avons également appris à utiliser les promesses imbriquées et le chaînage de promesses. En règle générale, les utilisateurs recevront des promesses sous forme de réponses des API et devront utiliser les blocs then() et catch() pour les gérer.

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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Apr 04, 2025 pm 02:42 PM

Des questions et des solutions fréquemment posées pour l'impression de billets thermiques frontaux pour le développement frontal, l'impression de billets est une exigence commune. Cependant, de nombreux développeurs mettent en œuvre ...

Qui est payé plus de python ou de javascript? Qui est payé plus de python ou de javascript? Apr 04, 2025 am 12:09 AM

Il n'y a pas de salaire absolu pour les développeurs Python et JavaScript, selon les compétences et les besoins de l'industrie. 1. Python peut être davantage payé en science des données et en apprentissage automatique. 2. JavaScript a une grande demande dans le développement frontal et complet, et son salaire est également considérable. 3. Les facteurs d'influence comprennent l'expérience, la localisation géographique, la taille de l'entreprise et les compétences spécifiques.

Démystifier javascript: ce qu'il fait et pourquoi c'est important Démystifier javascript: ce qu'il fait et pourquoi c'est important Apr 09, 2025 am 12:07 AM

JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Comment fusionner les éléments du tableau avec le même ID dans un seul objet en utilisant JavaScript? Comment fusionner les éléments du tableau avec le même ID dans un seul objet en utilisant JavaScript? Apr 04, 2025 pm 05:09 PM

Comment fusionner les éléments du tableau avec le même ID dans un seul objet en JavaScript? Lors du traitement des données, nous rencontrons souvent la nécessité d'avoir le même ID ...

Comment réaliser des effets de défilement de parallaxe et d'animation des éléments, comme le site officiel de Shiseido?
ou:
Comment pouvons-nous réaliser l'effet d'animation accompagné d'un défilement de page comme le site officiel de Shiseido? Comment réaliser des effets de défilement de parallaxe et d'animation des éléments, comme le site officiel de Shiseido? ou: Comment pouvons-nous réaliser l'effet d'animation accompagné d'un défilement de page comme le site officiel de Shiseido? Apr 04, 2025 pm 05:36 PM

La discussion sur la réalisation des effets de défilement de parallaxe et d'animation des éléments dans cet article explorera comment réaliser le site officiel de Shiseido (https://www.shiseido.co.jp/sb/wonderland/) ...

JavaScript est-il difficile à apprendre? JavaScript est-il difficile à apprendre? Apr 03, 2025 am 12:20 AM

Apprendre JavaScript n'est pas difficile, mais c'est difficile. 1) Comprendre les concepts de base tels que les variables, les types de données, les fonctions, etc. 2) Master la programmation asynchrone et les implémenter via des boucles d'événements. 3) Utilisez les opérations DOM et promettez de gérer les demandes asynchrones. 4) Évitez les erreurs courantes et utilisez des techniques de débogage. 5) Optimiser les performances et suivre les meilleures pratiques.

Comment implémenter la fonction de glisser-déposer et de régler la fonction de réglage similaire à VScode dans le développement frontal? Comment implémenter la fonction de glisser-déposer et de régler la fonction de réglage similaire à VScode dans le développement frontal? Apr 04, 2025 pm 02:06 PM

Explorez la mise en œuvre de la fonction de glisser et de réglage du panneau de type VScode dans le frontal. Dans le développement frontal, comment implémenter un VScode comme ...

La différence dans Console.Log de sortie Résultat: Pourquoi les deux appels sont-ils différents? La différence dans Console.Log de sortie Résultat: Pourquoi les deux appels sont-ils différents? Apr 04, 2025 pm 05:12 PM

Discussion approfondie des causes profondes de la différence de sortie Console.log. Cet article analysera les différences dans les résultats de sortie de la fonction Console.log dans un morceau de code et expliquera les raisons derrière. � ...

See all articles