SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Les Promises en
JS
Benoit Zohar
1
Javascript et
ECMAScript
1- Javascript et ECMAScript
• Javascript est un language de scripting
• Créé en 1995 par Brendan Eich pour Netscape
1- Javascript et ECMAScript
• Netscape dépose une standardisation:
ECMAScript
• Javascript évolue rapidement.
• Les moteurs Javascript aussi.
1- Javascript et ECMAScript
• Javascript est utilisé dans le navigateur
• Mais aussi :
• Serveurs web
• Applications mobiles (Semi-Natives / HTML5)
• Macros (Open Office)
1- Javascript et ECMAScript
• ECMAScript sert de standard pour
• JS
• ActionScript
• C++
1- Javascript et ECMAScript
• Le Futur: ECMAScript 6
• ECMAScript 6 apporte beaucoup d'améliorations:
• les Classes (!)
• la Déstructuration
• les Générateurs
• les Promises
2
Threads et
callbacks
2- Threads et callbacks
• Javascript est single-threaded.
• Toute action est bloquante.
• Les traitements longs sont détachés pour libérer
le thread principal.
2- Threads et callbacks
• Un Callback peut être comparé à un Event unique.
• Fonction en paramètre d'un appel méthode
• Exécutée à la fin du traitement
2- Threads et callbacks
2- Threads et callbacks
• Dans la vraie vie:
3
Promises
3- Promises
• Issues du DOM:
• Objectif: Simplifier la démarche asynchrone
• "Promesse de réponse"
• 2 types de réponses:
• Succès (valeur)
• Erreur (message)
Futures
3- Promises
• Déjà implémentés:
• AngularJS: $q (Q)
• jQuery (~)
• RSVP
• when
• ...
3- Promises
• Quatre états:
• accomplie (fulfilled)
• rejetée (rejected)
• en attente (pending)
• établie (settled)
3- Promises Utilisation d'un objet Promise
• initialisation: new Promise(function)
• then() <- Action à lier au retour d'une promise
• catch() <- Capturer les erreurs
• resolve() <- Tout à bien fonctionné
• reject() <- Une erreur est survenue
3- Promises Utilisation d'un objet Promise
3- Promises Utilisation d'un objet Promise
3- Promises Utilisation d'un objet Promise
3- Promises
• then() et catch() retournent une promise
• reject() et resolve() aussi
Chaînage
3- Promises
• Dans la vraie vie:
4
Méthodes &
Patterns
4- Méthodes & Patterns
• Une promise est un pattern en elle-même.
• En plus du chaînage, elle a 2 méthodes:
.all([ ... ])
.race([ ... ])
4- Méthodes & Patterns
• Prend un tableau de promises en paramètre
• Exécute "then" lorsque tous les résultats sont arrivés
Promise.All([ ... ])
4- Méthodes & Patterns
• Prend un tableau de promises en paramètre
• Exécute "then" lorsque le premier résultat est arrivé
Promise.race([ ... ])
then()
5
Exemples
5- Exemples
• Exemple 1: Chaînage
• Exemple 2: Requête HTTP
• Exemple 3: Race
Merci
@benoitzohar

Weitere ähnliche Inhalte

Was ist angesagt?

Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptKhalid Jebbari
 
JavaScript pour le développeur Java
JavaScript pour le développeur JavaJavaScript pour le développeur Java
JavaScript pour le développeur Javajollivetc
 
Pourquoi et comment j'ai appris JavaScript
Pourquoi et comment j'ai appris JavaScriptPourquoi et comment j'ai appris JavaScript
Pourquoi et comment j'ai appris JavaScriptjollivetc
 
Cappuccino - ou comment créer une application web en 5 minutes
Cappuccino - ou comment créer une application web en 5 minutes Cappuccino - ou comment créer une application web en 5 minutes
Cappuccino - ou comment créer une application web en 5 minutes Geeks Anonymes
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express jsAbdoulaye Dieng
 
NodeJs, une introduction
NodeJs, une introductionNodeJs, une introduction
NodeJs, une introductionToxicode
 
Javascript pour les Développeurs WEB
Javascript pour les Développeurs WEBJavascript pour les Développeurs WEB
Javascript pour les Développeurs WEBAbbes Rharrab
 
Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)Dr Samir A. ROUABHI
 
Présentation JavaScript
Présentation JavaScriptPrésentation JavaScript
Présentation JavaScripttarkan_
 
Programmation concurrente en Java
Programmation concurrente en JavaProgrammation concurrente en Java
Programmation concurrente en JavaFlorian Beaufumé
 
Rouabhi algiers meetup
Rouabhi algiers meetupRouabhi algiers meetup
Rouabhi algiers meetupSamir Rouabhi
 
Enib cours c.a.i. web - séance #6 : introduction à node js
Enib   cours c.a.i. web - séance #6 : introduction à node jsEnib   cours c.a.i. web - séance #6 : introduction à node js
Enib cours c.a.i. web - séance #6 : introduction à node jsHoracio Gonzalez
 
Javascript & tools
Javascript & toolsJavascript & tools
Javascript & toolsSlim Soussi
 
Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB13p
 
EventMachine
EventMachineEventMachine
EventMachineLeTesteur
 
Notions de base de JavaScript
Notions de base de JavaScriptNotions de base de JavaScript
Notions de base de JavaScriptKristen Le Liboux
 

Was ist angesagt? (20)

Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 
JavaScript pour le développeur Java
JavaScript pour le développeur JavaJavaScript pour le développeur Java
JavaScript pour le développeur Java
 
Pourquoi et comment j'ai appris JavaScript
Pourquoi et comment j'ai appris JavaScriptPourquoi et comment j'ai appris JavaScript
Pourquoi et comment j'ai appris JavaScript
 
Cappuccino - ou comment créer une application web en 5 minutes
Cappuccino - ou comment créer une application web en 5 minutes Cappuccino - ou comment créer une application web en 5 minutes
Cappuccino - ou comment créer une application web en 5 minutes
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express js
 
NodeJs, une introduction
NodeJs, une introductionNodeJs, une introduction
NodeJs, une introduction
 
Introduction à Node.js
Introduction à Node.js Introduction à Node.js
Introduction à Node.js
 
Javascript pour les Développeurs WEB
Javascript pour les Développeurs WEBJavascript pour les Développeurs WEB
Javascript pour les Développeurs WEB
 
Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)
 
Présentation JavaScript
Présentation JavaScriptPrésentation JavaScript
Présentation JavaScript
 
Programmation concurrente en Java
Programmation concurrente en JavaProgrammation concurrente en Java
Programmation concurrente en Java
 
Rouabhi algiers meetup
Rouabhi algiers meetupRouabhi algiers meetup
Rouabhi algiers meetup
 
Enib cours c.a.i. web - séance #6 : introduction à node js
Enib   cours c.a.i. web - séance #6 : introduction à node jsEnib   cours c.a.i. web - séance #6 : introduction à node js
Enib cours c.a.i. web - séance #6 : introduction à node js
 
Javascript & tools
Javascript & toolsJavascript & tools
Javascript & tools
 
Présentation de Node.js
Présentation de Node.jsPrésentation de Node.js
Présentation de Node.js
 
NodeJs in real life
NodeJs in real lifeNodeJs in real life
NodeJs in real life
 
The Future of Javascript
The Future of JavascriptThe Future of Javascript
The Future of Javascript
 
Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB
 
EventMachine
EventMachineEventMachine
EventMachine
 
Notions de base de JavaScript
Notions de base de JavaScriptNotions de base de JavaScript
Notions de base de JavaScript
 

Andere mochten auch

Angular2 / Typescript symposium Versusmind
Angular2 / Typescript symposium VersusmindAngular2 / Typescript symposium Versusmind
Angular2 / Typescript symposium VersusmindPhilippe Didiergeorges
 
XebiCon'16 : Angular2, React, Vue.js - Bien choisir son framework Front-End. ...
XebiCon'16 : Angular2, React, Vue.js - Bien choisir son framework Front-End. ...XebiCon'16 : Angular2, React, Vue.js - Bien choisir son framework Front-End. ...
XebiCon'16 : Angular2, React, Vue.js - Bien choisir son framework Front-End. ...Publicis Sapient Engineering
 
Symposium flexbox
Symposium flexboxSymposium flexbox
Symposium flexboxVersusmind
 
Symposium uxdesign
Symposium uxdesignSymposium uxdesign
Symposium uxdesignVersusmind
 
Asynchronismes en Javascript
Asynchronismes en JavascriptAsynchronismes en Javascript
Asynchronismes en JavascriptFlorent Le Gall
 
AngularJS - Présentation (french)
AngularJS - Présentation (french)AngularJS - Présentation (french)
AngularJS - Présentation (french)Yacine Rezgui
 
MVC ppt presentation
MVC ppt presentationMVC ppt presentation
MVC ppt presentationBhavin Shah
 
Formation Classes prépas Lycée Sainte-Geneviève, Versailles
Formation Classes prépas Lycée Sainte-Geneviève, VersaillesFormation Classes prépas Lycée Sainte-Geneviève, Versailles
Formation Classes prépas Lycée Sainte-Geneviève, VersaillesMagalie Le Gall
 
Diversidad Cultural Abasto
Diversidad Cultural AbastoDiversidad Cultural Abasto
Diversidad Cultural Abastosecundariam
 
Formation : que sont devenus les bénéficiaires en 2013 ?
Formation : que sont devenus les bénéficiaires en 2013 ?Formation : que sont devenus les bénéficiaires en 2013 ?
Formation : que sont devenus les bénéficiaires en 2013 ?France Travail
 
Videofor all presentation Spanish
Videofor all presentation SpanishVideofor all presentation Spanish
Videofor all presentation SpanishJoel Josephson
 
Regimes de Responsabilitie: Contrats "Style Americain" 19 Septembre 2013
 Regimes de Responsabilitie: Contrats "Style Americain" 19 Septembre 2013 Regimes de Responsabilitie: Contrats "Style Americain" 19 Septembre 2013
Regimes de Responsabilitie: Contrats "Style Americain" 19 Septembre 2013Eliot Norman
 

Andere mochten auch (20)

Angular2 / Typescript symposium Versusmind
Angular2 / Typescript symposium VersusmindAngular2 / Typescript symposium Versusmind
Angular2 / Typescript symposium Versusmind
 
XebiCon'16 : Angular2, React, Vue.js - Bien choisir son framework Front-End. ...
XebiCon'16 : Angular2, React, Vue.js - Bien choisir son framework Front-End. ...XebiCon'16 : Angular2, React, Vue.js - Bien choisir son framework Front-End. ...
XebiCon'16 : Angular2, React, Vue.js - Bien choisir son framework Front-End. ...
 
Symposium TFS - DevOps avec Microsoft
Symposium TFS - DevOps avec MicrosoftSymposium TFS - DevOps avec Microsoft
Symposium TFS - DevOps avec Microsoft
 
Symposium flexbox
Symposium flexboxSymposium flexbox
Symposium flexbox
 
Symposium uxdesign
Symposium uxdesignSymposium uxdesign
Symposium uxdesign
 
Introduction à Angular 2
Introduction à Angular 2Introduction à Angular 2
Introduction à Angular 2
 
Abogado, asesor, consultor litigante administrador de empresas Inocencio mele...
Abogado, asesor, consultor litigante administrador de empresas Inocencio mele...Abogado, asesor, consultor litigante administrador de empresas Inocencio mele...
Abogado, asesor, consultor litigante administrador de empresas Inocencio mele...
 
Asynchronismes en Javascript
Asynchronismes en JavascriptAsynchronismes en Javascript
Asynchronismes en Javascript
 
AngularJS - Présentation (french)
AngularJS - Présentation (french)AngularJS - Présentation (french)
AngularJS - Présentation (french)
 
Why Use MVC?
Why Use MVC?Why Use MVC?
Why Use MVC?
 
Why MVC?
Why MVC?Why MVC?
Why MVC?
 
MVC ppt presentation
MVC ppt presentationMVC ppt presentation
MVC ppt presentation
 
Model View Controller (MVC)
Model View Controller (MVC)Model View Controller (MVC)
Model View Controller (MVC)
 
Mvc architecture
Mvc architectureMvc architecture
Mvc architecture
 
Formation Classes prépas Lycée Sainte-Geneviève, Versailles
Formation Classes prépas Lycée Sainte-Geneviève, VersaillesFormation Classes prépas Lycée Sainte-Geneviève, Versailles
Formation Classes prépas Lycée Sainte-Geneviève, Versailles
 
Ideas para emprendimientos sociales y abiertos
Ideas para emprendimientos sociales y abiertosIdeas para emprendimientos sociales y abiertos
Ideas para emprendimientos sociales y abiertos
 
Diversidad Cultural Abasto
Diversidad Cultural AbastoDiversidad Cultural Abasto
Diversidad Cultural Abasto
 
Formation : que sont devenus les bénéficiaires en 2013 ?
Formation : que sont devenus les bénéficiaires en 2013 ?Formation : que sont devenus les bénéficiaires en 2013 ?
Formation : que sont devenus les bénéficiaires en 2013 ?
 
Videofor all presentation Spanish
Videofor all presentation SpanishVideofor all presentation Spanish
Videofor all presentation Spanish
 
Regimes de Responsabilitie: Contrats "Style Americain" 19 Septembre 2013
 Regimes de Responsabilitie: Contrats "Style Americain" 19 Septembre 2013 Regimes de Responsabilitie: Contrats "Style Americain" 19 Septembre 2013
Regimes de Responsabilitie: Contrats "Style Americain" 19 Septembre 2013
 

Ähnlich wie Les Promises en Javascript

JavaScript dans l'usine logicielle
JavaScript dans l'usine logicielleJavaScript dans l'usine logicielle
JavaScript dans l'usine logiciellejollivetc
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.jsTelecomValley
 
Autour de Node.js - TechConf#3
Autour de Node.js - TechConf#3Autour de Node.js - TechConf#3
Autour de Node.js - TechConf#3Luc Juggery
 
Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes AgilesIppon
 
Devoxx java script-1280-720
Devoxx java script-1280-720Devoxx java script-1280-720
Devoxx java script-1280-720Romain Linsolas
 
AngularJS et autres techno frontend
AngularJS et autres techno frontendAngularJS et autres techno frontend
AngularJS et autres techno frontendyllieth
 
Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Cellenza
 
Caching reboot: javax.cache & Ehcache 3
Caching reboot: javax.cache & Ehcache 3Caching reboot: javax.cache & Ehcache 3
Caching reboot: javax.cache & Ehcache 3Louis Jacomet
 
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...ALTER WAY
 
Plongée au cœur du Framework .NET 4.5
Plongée au cœur du Framework .NET 4.5Plongée au cœur du Framework .NET 4.5
Plongée au cœur du Framework .NET 4.5Microsoft
 
Google Cloud Composer
Google Cloud ComposerGoogle Cloud Composer
Google Cloud ComposerPierre Coste
 
CSS3 - Possibilite creatives
CSS3 - Possibilite creativesCSS3 - Possibilite creatives
CSS3 - Possibilite creativesRémy Savard
 

Ähnlich wie Les Promises en Javascript (20)

YaJUG - Spring 3.0
YaJUG - Spring 3.0YaJUG - Spring 3.0
YaJUG - Spring 3.0
 
JavaScript dans l'usine logicielle
JavaScript dans l'usine logicielleJavaScript dans l'usine logicielle
JavaScript dans l'usine logicielle
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js
 
Autour de Node.js - TechConf#3
Autour de Node.js - TechConf#3Autour de Node.js - TechConf#3
Autour de Node.js - TechConf#3
 
Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes Agiles
 
Devoxx java script-1280-720
Devoxx java script-1280-720Devoxx java script-1280-720
Devoxx java script-1280-720
 
AngularJS et autres techno frontend
AngularJS et autres techno frontendAngularJS et autres techno frontend
AngularJS et autres techno frontend
 
Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1
 
Caching reboot: javax.cache & Ehcache 3
Caching reboot: javax.cache & Ehcache 3Caching reboot: javax.cache & Ehcache 3
Caching reboot: javax.cache & Ehcache 3
 
Maven
MavenMaven
Maven
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Rails 3 au Djangocong
Rails 3 au DjangocongRails 3 au Djangocong
Rails 3 au Djangocong
 
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
 
Présentation1
Présentation1Présentation1
Présentation1
 
Express1
Express1Express1
Express1
 
Angular.pdf
Angular.pdfAngular.pdf
Angular.pdf
 
Retour d'experience projet AngularJS
Retour d'experience projet AngularJSRetour d'experience projet AngularJS
Retour d'experience projet AngularJS
 
Plongée au cœur du Framework .NET 4.5
Plongée au cœur du Framework .NET 4.5Plongée au cœur du Framework .NET 4.5
Plongée au cœur du Framework .NET 4.5
 
Google Cloud Composer
Google Cloud ComposerGoogle Cloud Composer
Google Cloud Composer
 
CSS3 - Possibilite creatives
CSS3 - Possibilite creativesCSS3 - Possibilite creatives
CSS3 - Possibilite creatives
 

Les Promises en Javascript

  • 3. 1- Javascript et ECMAScript • Javascript est un language de scripting • Créé en 1995 par Brendan Eich pour Netscape
  • 4. 1- Javascript et ECMAScript • Netscape dépose une standardisation: ECMAScript • Javascript évolue rapidement. • Les moteurs Javascript aussi.
  • 5. 1- Javascript et ECMAScript • Javascript est utilisé dans le navigateur • Mais aussi : • Serveurs web • Applications mobiles (Semi-Natives / HTML5) • Macros (Open Office)
  • 6. 1- Javascript et ECMAScript • ECMAScript sert de standard pour • JS • ActionScript • C++
  • 7. 1- Javascript et ECMAScript • Le Futur: ECMAScript 6 • ECMAScript 6 apporte beaucoup d'améliorations: • les Classes (!) • la Déstructuration • les Générateurs • les Promises
  • 9. 2- Threads et callbacks • Javascript est single-threaded. • Toute action est bloquante. • Les traitements longs sont détachés pour libérer le thread principal.
  • 10. 2- Threads et callbacks • Un Callback peut être comparé à un Event unique. • Fonction en paramètre d'un appel méthode • Exécutée à la fin du traitement
  • 11. 2- Threads et callbacks
  • 12. 2- Threads et callbacks • Dans la vraie vie:
  • 13.
  • 15. 3- Promises • Issues du DOM: • Objectif: Simplifier la démarche asynchrone • "Promesse de réponse" • 2 types de réponses: • Succès (valeur) • Erreur (message) Futures
  • 16. 3- Promises • Déjà implémentés: • AngularJS: $q (Q) • jQuery (~) • RSVP • when • ...
  • 17. 3- Promises • Quatre états: • accomplie (fulfilled) • rejetée (rejected) • en attente (pending) • établie (settled)
  • 18. 3- Promises Utilisation d'un objet Promise • initialisation: new Promise(function) • then() <- Action à lier au retour d'une promise • catch() <- Capturer les erreurs • resolve() <- Tout à bien fonctionné • reject() <- Une erreur est survenue
  • 19. 3- Promises Utilisation d'un objet Promise
  • 20. 3- Promises Utilisation d'un objet Promise
  • 21. 3- Promises Utilisation d'un objet Promise
  • 22. 3- Promises • then() et catch() retournent une promise • reject() et resolve() aussi Chaînage
  • 23. 3- Promises • Dans la vraie vie:
  • 25. 4- Méthodes & Patterns • Une promise est un pattern en elle-même. • En plus du chaînage, elle a 2 méthodes: .all([ ... ]) .race([ ... ])
  • 26. 4- Méthodes & Patterns • Prend un tableau de promises en paramètre • Exécute "then" lorsque tous les résultats sont arrivés Promise.All([ ... ])
  • 27. 4- Méthodes & Patterns • Prend un tableau de promises en paramètre • Exécute "then" lorsque le premier résultat est arrivé Promise.race([ ... ]) then()
  • 29. 5- Exemples • Exemple 1: Chaînage • Exemple 2: Requête HTTP • Exemple 3: Race

Hinweis der Redaktion

  1. Brendan Eich: membre du conseil d’administration de la Mozilla Foundation SUN + Netscape : sortie de JS en décembre 1995 Mocha -> LiveScript -> Javascript
  2. Actuel ECMAScript: principalement la v3. la v4 a été abandonnées au profit de la 5 la 5 vise a améliorer la rétrocompatibilité avec les versions précédentes Javascript Engines: V8 = google / nodeJS Chakra = IE SpiderMonkey = Firefox JavaScriptCore = Webkit (Safari..)
  3. NodeJS basé sur CommonJS CommonJS : projet de développement d'une API pour développer un écosystème en JS.
  4. ActionScript -> Flash C++ -> Norme 2011 aussi : Adobe Acrobat, .NET (JSCript)
  5. Destructuring object ~= list() en PHP générateur = generator (yield ...) Aussi: Valeurs par défaut, allègement de syntax (fonctions), portée des variables (let), collections, proxies
  6. Par convention et à l'usage, les traitements longs sont détachés pour débloquer le thread principal.
  7. Un callback peut être comparé à un évènement unique ET spécifique. C'est à dire qu'il est attaché à une seule méthode (en théorie) et n'est appelé qu'une fois (en théorie aussi) Concretement, le JS est devenu un nid à Callback (surtout avec NodeJS).
  8. Voici un exemple très simple de callback.
  9. Flèches vertes = succès Flèches rouges = erreur
  10. Nous nous intéresserons à l'implémentation officielle, celle qui vient avec ECMAScript 6: l'objet "Promise"
  11. accomplie: L’action associée à la promesse a réussi rejetée: L’action associée à la promesse a échoué en attente: N’est encore ni accomplie ni rejetée établie: Est accomplie ou rejetée
  12. Expliquer pour "resolve" et "rejecte" en parametre
  13. Expliquer pour "resolve" et "rejecte" en parametre -> Mais il y a aussi une autre manière de capturer les erreurs ... ->
  14. "on peut donc écrire"
  15. Reprenons l'exemple de tout à l'heure
  16. renvoie un tableau avec tous les résultats
  17. Les autres résultats sont abandonnés...