IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Angular Discussion :

Syntaxe observable correcte ?


Sujet :

Angular

  1. #1
    Membre averti
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 502
    Points : 300
    Points
    300
    Par défaut Syntaxe observable correcte ?
    Bonjour,

    Débutant sur ce framework, je voulais savoir si ces 2 syntaxes sont équivalentes :

    1ere syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ngOnInit() {
        obs = this.dataService.getArticles().pipe(
          map(
            (mockArticles: Article[]) => {
              mockArticles.filter(
                (articleUnit: Article) => articleUnit.author === 'John Doe'
              );
            })
        );
      }
    2eme syntaxe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ngOnInit() {
        obs = this.dataService.getArticles().pipe(
          map(
            (mockArticles: Article[]) => mockArticles.filter(
              (articleUnit: Article) => articleUnit.author === 'John Doe'
            )
          )
        );
      }
    Je pense que oui, mais je voudrais en être sûr

    Deuxième question : j'ai du mal à comprendre cette syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    const getTemperature = city => 100 / city.length;
    Une constante peut être une déclaration de fonction ? Les parenthèses pour passer les paramètres et les crochets sont facultatifs du coup ?

    Merci de votre aide

  2. #2
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    ****
    ça fonctionne tes observables ?
    tu peux me faire un console.log de : this.dataService.getArticles()




    *****

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    const getTemperature = city => 100 / city.length;
    en effet, en javascript on peut créer une fonction dans une variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    const getTemperature = city => 100 / city.length;                                 // la plus simple       // pas besoin de mettre return, ça le fait automatiquement (puisqu'il y a qu'une seule ligne)
     
    const getTemperature = (city: number) => 100 / city.length;                 //  si on veut définir un type (number) à city        
     
    const getTemperature = city => {  ...autres lignes...; ...;  return 100 / city.length;  }       // si contient plusieurs lignes alors on met {  }    // ATTENTION:   puisqu'il y a plusieurs lignes, il faut bien indiquer laquelle doit être retourné   (avec return ....)
     
    const getTemperature = (city) => { ...autres lignes...; ...;  return 100 / city.length; }       // les () de (city) sont facultatif puisqu'on ne définit pas de type mais ça fonctionne qd même
     
    const getTemperature = (city: number) => { ...autres lignes...; ...;  return 100 / city.length; }
     
    function getTemperature(city) {                     //  classique
      return 100 / city.length;
    }
     
    function getTemperature(city: number) {                     //  classique     //  si on veut définir un type (number) à city
      return 100 / city.length;
    }
    utilisation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      getTemperature(10);

  3. #3
    Membre averti
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 502
    Points : 300
    Points
    300
    Par défaut
    Salut,

    Merci pour tes explications .

    Pour les observables (enfin plutôt l'observable, la 2eme version est de moi) ça vient de ce tuto que je ne fais pas tourner pour l'instant

    https://makina-corpus.com/blog/metie...s-dans-angular

  4. #4
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    pour l'observable, les 2 syntaxes sont équivalentes
    mais la 1ere tu n'auras pas de résultat
    il y a un oublie, une instruction qui manque

    regarde ce que j'ai écrit à propos du "return" dans mon message précédent et tu trouveras !

  5. #5
    Membre averti
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 502
    Points : 300
    Points
    300
    Par défaut
    Ah ok, parce que du coup le getArticles() renvoie un observable de type tableau d'articles (Observable<Article[]>)
    Il faut faire un return obs après la fermeture de pipe ?

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    Par défaut
    NON

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    // si contient plusieurs lignes alors on met {  }    // ATTENTION:   puisqu'il y a plusieurs lignes, il faut bien indiquer laquelle doit être retourné   (avec return ....)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ngOnInit() {
        obs = this.dataService.getArticles().pipe(
          map(
            (mockArticles: Article[]) => {
              return mockArticles.filter(
                (articleUnit: Article) => articleUnit.author === 'John Doe'
              );
            })
        );
      }

  7. #7
    Membre averti
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 502
    Points : 300
    Points
    300
    Par défaut
    Ah ok, pourtant dans la 2eme syntaxe il y a plusieurs lignes aussi, non ?

  8. #8
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    Par défaut
    non

    le fait de mettre {} indique plusieurs lignes mais on peut en mettre qu'une seule.
    ce qui est le cas dans le 1er


    donc si tu mets des {} , un return est attendu...



    je te conseil de tester:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ngOnInit() {
        this.dataService.getArticles().pipe(
          map(
            (mockArticles: Article[]) => {
              return mockArticles.filter(
                (articleUnit: Article) => articleUnit.author === 'John Doe'
              );
            })
        ).subscribe((res: any) => {
            console.log(res);
    });

  9. #9
    Membre averti
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 502
    Points : 300
    Points
    300
    Par défaut
    enfin dcompris, désolé pour mon côté boulet...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Syntaxe FROM correcte ?
    Par topino dans le forum Langage SQL
    Réponses: 6
    Dernier message: 21/05/2008, 09h15
  2. Correction de syntaxe
    Par Telemak dans le forum Bases de données
    Réponses: 2
    Dernier message: 15/08/2006, 21h27
  3. Réponses: 3
    Dernier message: 31/03/2006, 08h47
  4. Réponses: 4
    Dernier message: 30/01/2006, 03h08
  5. Syntaxe est-elle correcte
    Par Silvia12 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 18/07/2005, 12h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo