Programmation asynchrone en JavaScript: Événements, Callbacks, Promises, async-await

Поділитися
Вставка
  • Опубліковано 7 лют 2025

КОМЕНТАРІ • 50

  • @MorganSchmiedt
    @MorganSchmiedt  4 роки тому +3

    Programmation synchrone 0:29
    Programmation asynchrone 3:56
    Programmation asynchrone en utilisant des Callbacks 12:49
    Programmation asynchrone en utilisant des Promises 24:47
    Programmation asynchrone en utilisant les mots clés Async et await 34:24

  • @yourkaa5670
    @yourkaa5670 2 роки тому +1

    Tu es un ouff mec 😱 ton intelligence pédagogique est au-dessus de la moyenne!!

  • @Alif-622-hg
    @Alif-622-hg Рік тому +2

    J'ai suivi plusieurs vidéos concernant le sujet. Mais franchement vos êtes le meilleur car vous expliquez tellement bien les choses que finalement il est presque impossible de ne pas comprendre. En plus vous abordez toutes ces trois notions (callback, promise, et await) d'une manière chronologique tout en faisant le lien et les différences entre elles. Un grand merci

  • @soufianeaknouche2508
    @soufianeaknouche2508 Рік тому +1

    Merci Morgan pour les éclaircissements quant aux différentes façons de faire de l'asynchrone.

  • @marcelehuyambianguessan5510
    @marcelehuyambianguessan5510 9 місяців тому

    Honnêtement après avoir papoté plus d'une heure sur UA-cam, c'est la première vidéo qui m'explique vraiment clairement les choses

  • @josiassehi.keassebo6020
    @josiassehi.keassebo6020 2 роки тому

    Bonjour a vous , je tiens a vous remercier pour ce excellent travail 🤗 tres tres complet et facile a comprendre

  • @emmanuelcronenberger5027
    @emmanuelcronenberger5027 2 роки тому

    Merci pour ton travail tu expliques avec beaucoup de clarté 👍

  • @Greg-dn5rt
    @Greg-dn5rt 2 роки тому

    Bien expliqué merci. 🤏🏾 Par contre ton fond d'écran on dirait un cours de magie lol

  • @jacquesderiban557
    @jacquesderiban557 3 роки тому +3

    Vous faites un excellent travail pédagogique. Vous méritez bien plus de vues et d'abonnés. Merci.

  • @pelletierchristophe21
    @pelletierchristophe21 2 роки тому

    Bonjour, Je vous remercie pour votre vidéo ; j'avais investi dans des livres, regardé des tutos sur le sujet sans vraiment bien comprendre ; là, vos explications sont accessibles pour un débutant ! Merci beaucoup de prendre le temps pour ces vidéos. C'est très appréciable.

  • @espinozagaye6242
    @espinozagaye6242 2 роки тому

    Merci pour les explications je viens de découvrir mais c’est top je comprends petit à petit

  • @soundhiker
    @soundhiker 3 роки тому

    Merci Morgan pour cette vidéo parfaitement claire... j'ai du lire un paquet d'article et regarder pas mal de vidéos avant d'enfin tomber sur celle là qui est limpide. Bravo !

  • @laurentgauthier8742
    @laurentgauthier8742 3 роки тому

    Un grand merci pour ces contenus et l'effort pédagogique qui est derrière. D'ailleurs, la remarque s'applique aussi à toutes les vidéos de la chaîne que j'ai pu visionner jusqu'à maintenant, Je continue, tout devient de plus en plus clair ! Merci encore.

  • @lexplay4019
    @lexplay4019 4 роки тому

    mec je te remercie, j'ai planché pendant 3 jours non stop. J'avais compris pourquoi on devait les utiliser mais comment utiliser ces outils, j'en étais incapable. Maintenant je vois un peu mieux et en plus tu as un léger accent alsacien ce qui m'a facilité le travail ^^'. Je pense que je vais jeter un coup d'oeil sur tes autres vidéos et merci encore

  • @ryanthibaux7011
    @ryanthibaux7011 3 роки тому

    Merci pour cette vidéo, et le mini best-of à la fin qui permet de décompresser après un bourrage de crâne ! :')

  • @frankdearr2772
    @frankdearr2772 Рік тому

    Excellente video, merci pour ce sujet vraiment utile 👍

  • @tropic44
    @tropic44 3 роки тому

    Merci pour tes efforts de pédagogie

  • @storm-technologie
    @storm-technologie 2 роки тому

    franchement je suis vraiment déçus, mais vraiment déçus de ne pas t'avoir connus plus tôt 😅, merci , les choses sont très bien expliquer et sa ma donner envie de voir plusieurs de tes vidéos 👍👍

    • @MorganSchmiedt
      @MorganSchmiedt  2 роки тому +1

      Les grands esprits finissent toujours par se rencontrer 😝

  • @electroheadfx
    @electroheadfx 4 роки тому

    Franchement tu es le seul qui m'a fait bien comprendre les notions, merci !

    • @MorganSchmiedt
      @MorganSchmiedt  4 роки тому +1

      Merci Laurent. Content que ca te plaise.

  • @Cilloux972
    @Cilloux972 2 роки тому

    C'est super bien expliqué ! Je m'abonne !

  • @saminserge2674
    @saminserge2674 2 роки тому

    Merci pour vos excellentes videos . une tres bonne continuation a vous !

  • @chr_aikicom
    @chr_aikicom Рік тому

    excellente explication 😊

  • @jipeejoce1353
    @jipeejoce1353 3 роки тому

    Tuto exceptionnel (et je pèse mes mots), merci pour vos efforts, +1 abo :)

  • @philippedevezeaud5029
    @philippedevezeaud5029 3 роки тому

    Bonne explications, clair. Merci pour le partage

  • @theot4562
    @theot4562 3 роки тому

    Top ton travail. Cela m'a beaucoup aidé !

  • @louisvandevelde
    @louisvandevelde 4 роки тому

    Bravo, magnifique vidéo, du grand art.

  • @olivier8556
    @olivier8556 3 роки тому

    Excellente vidéo ! merci beaucoup

  • @sofianesofiane1831
    @sofianesofiane1831 3 роки тому

    Merci Monsieur ,,👍

  • @raphaelparodi3377
    @raphaelparodi3377 3 роки тому

    Tout simplement , merci ! :)

  • @kira2935
    @kira2935 10 місяців тому

    magnifique

  • @raph6709
    @raph6709 3 роки тому

    Merci c'était très clair!

  • @theot4562
    @theot4562 3 роки тому

    Petit clin d'oeil pour le best-off a la fin de la vidéo XD

  • @flaks7831
    @flaks7831 4 роки тому

    super tuto merci beaucoup je m'abonne :)

  • @maureenbayedi4031
    @maureenbayedi4031 4 роки тому

    Super tuto

  • @Sdirimohamedsalah
    @Sdirimohamedsalah 4 роки тому +1

    Merci pour cette explication en profondeur !
    Question : comment faire pour créer un logique basé sur le temps.
    Par exemple on attend la réponse (avoir le nom) si l'utilisateur ne répond pas au bout de 5 secondes par exemple on lui donne une deuxième question en occurrence lui demandant son prénom?

    • @MorganSchmiedt
      @MorganSchmiedt  4 роки тому +1

      Avec plaisir! Pour effectuer une opération après un certain laps de temps, vous pouvez utiliser la fonction native setTimeout. J'en parle ici : ua-cam.com/video/YKOoAEt_XcE/v-deo.html

  • @far1006
    @far1006 4 роки тому +1

    👍

  • @soufianta8374
    @soufianta8374 3 роки тому

    Bonsoir. Je ne veux pas être développeur mais je suis une sorte d’administrateur système. Du coup, je fais quelques scripts et je maintiens/déploie des applications web. J’aime les langage style Ruby, python mais je commence à m’intéresser à js car c’est le langage du net! Nodejs est une excellente manière de sortir du « net ». Est-ce que nodejs est l’alternative parfaite à python etc. (pour faire du web et automatisation). Merci et bonne continuation..

    • @MorganSchmiedt
      @MorganSchmiedt  3 роки тому +1

      Je ne sais pas si NodeJS est l'alternative parfaite à Python, mais c'est une des alternatives avec PHP. Tout dépend ce que tu veux faire. L'avantage de NodeJS est de pouvoir écrire des programmes (scripts, backend Web, etc.) en JavaScript avec le même langage de programmation que celui utilisé sur le front-end, pour les sites Web. On peut donc apprendre un seul langage et réutiliser ses compétences pour différentes finalités.

  • @___Kevin
    @___Kevin 2 роки тому

    Merci beaucoup pour vos explications parce que c'est pas super évidemment comme concept

  • @theot4562
    @theot4562 3 роки тому

    Salut ​ @Morgan Schmiedt ,
    Je sais pas si tu peux m'aider.
    Mais j'ai un souci et je suis bloqué....
    Voici mon code :
    (La function ‘’req_sql ’’ devras lancer une requête SQL et par la suite récupérer le résultat de la requête.)
    /// MYSQL ///
    var mysql = require('mysql');
    var bdd = mysql.createConnection({
    host : '192.168.1.10',
    user : 'paul',
    password : '123456789',
    database : 'bourse' // Changer le nom de la database
    });
    const req_sql = (req) =>{

    return bdd.query(req,function(err, result) {
    if (err) throw err
    // console.log(result)
    return result

    });

    }
    console.log( req_sql('select * from tickers where symbol = "XPAR:TEP";'))

    • @MorganSchmiedt
      @MorganSchmiedt  3 роки тому

      Hey - Tu ne m'as pas dit quel était le problème exactement.
      Le mieux est d'essayer de localiser le problème pour essayer de savoir si le soucis vient de :
      1/ JavaScript, càd d'une erreur dans le code ;
      2/ SQL, càd un problème dans la requête SQL, ou dans la structure de la table ;
      3/ La base de données, càd une erreur de connexion, d'identifiant, ou de mot de passe ;
      Le code me semble correct. (Le point virgule à la fin de la requête n'est pas nécessaire)
      Pour confirmer la validité de la requête SQL, tu peux copier/coller ta requête en te connectant manuellement à la base et en l’exécutant.
      Pour confirmer la connexion à la base, tu peux aussi essayer de te connecter manuellement, avec les mêmes identifiants. Je suis surpris de voir que l'adresse (host) fait référence à une IP fixe, et ne fait pas référence à localhost (ou 127.0.0.1), car dans la majorité des cas, la base est localisée sur la même machine.

    • @theot4562
      @theot4562 3 роки тому

      @@MorganSchmiedt Hey merci pour ta réponse !
      Le problème provient du return BDD.Query.
      Seul une erreur et les identifiants de connexion est retournée.
      La requête SQL fonction très bien car le console.log(résult) (qui est en commentaire) m’affiche le résultat.
      Je pense que le problème réside vraiment dans la manière donc je retourne les valeurs.
      Merci pour ton temps 😉

    • @MorganSchmiedt
      @MorganSchmiedt  3 роки тому

      Si le "console.log" qui est en commentaire fonctionne, la connexion à la BD fonctionne et ta requête aussi.
      Pour récupérer le résultat de ta fonction "req_sql", tu ne peux pas simplement appeler la fonction "req_sql()" comme tu le fais et espérer avoir le résultat en retour, car le résultat de la fonction n'est pas synchrone, càd qu'il n'est pas disponible immédiatement. Le résultat est disponible seulement quand le callback est appelé, càd lorsque la fonction que tu transmets à "bdd.query" est executée.
      Aussi, il n'y a pas d'intérêt de retourner le résultat dans le callback ("return result"), car il n'est pas possible de récupérer le résultat de cette manière.
      Pour récupérer le résultat, il faudrait soit passer un callback à la fonction "req_sql", soit utiliser async/await.
      Par exemple :
      const req_sql = (req, cb) =>
      bdd.query(req, (err, result) => {
      if (err) throw err
      cb(result)
      })
      req_sql('select ...', (result) => console.log(result))

    • @theot4562
      @theot4562 3 роки тому

      ​@@MorganSchmiedt Est - il possible de récupérer la valeur au niveau de l'appelle de la fonction pour la stocker dans une variable .
      exemple :
      retour = req_sql('select * from tickers where symbol = "XPAR:TEP";', (result) => (result))
      console.log(retour)
      avec "retour" qui contient le résultat de la requête ?
      Merci pour ton temps ;)

    • @MorganSchmiedt
      @MorganSchmiedt  3 роки тому

      Oui c'est possible en utilisant une les Promise et async/await, comme je l'explique dans la vidéo.
      Il faut insérer ta fonction "req_sql" dans une Promise. Tu pourras ensuite l'utiliser comme une fonction synchrone en mettant : result = await req_sql(sql)