CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[JS] Trier tableau

yes-man
yes-man
Niveau 13
21 septembre 2017 à 19:27:37

Bonjour,

Une bonne illustration vaut mieux que 1000 mots :

https://i.gyazo.com/596093602efc790b4ec423e966f4b44f.png

Lorsque j'essaye de trier un tableau selon les dates, lorsqu'il est en dehors du foreach google api, cela fonctionne bien (employees). SI je le met dedans, il ne les tri pas (arr). Dans la console google, cela ressort de la sorte :

https://i.gyazo.com/c68672d26b4a2887e83c8def23ce20af.png
Le premier est employees, le second arr.

Une solution !?

arsh222
arsh222
Niveau 10
22 septembre 2017 à 00:40:26

Si la requête est asynchrone, je suppose que ton console.log(arr) arrive avant que la callback ne soit appelée, dont que arr soit initialisé [[sticker:p/1jnf]]

yes-man
yes-man
Niveau 13
22 septembre 2017 à 11:57:23

Effectivement gapi est appelé de cette façon

<script async defer src="https://apis.google.com/js/api.js" onload="this.onload=function(){};handleClientLoad()" onreadystatechange="if (this.readyState === 'complete') this.onload()"></script>

Mais même en enlevant le async le résultat est le même :(
Faut-il que je fasse/rajoute quelque chose de spécifique?

arsh222
arsh222
Niveau 10
22 septembre 2017 à 18:32:17

Non, je ne parle pas du chargement de ton script, mais de ta requête :
gapi.client.drive.files.get envoie la requête vers le serveur (google je suppose),
mais le script continue sur ta machine sans attendre que la réponse arrive, ce qui fait que ton tri sur arr se fait alors que arr ne contient encore rien. Ce qui se trouve dans le .then() n'est exécuté qu'une fois la réponse reçue, ce qui arrive plus tard.

Ton console.log (ou de façon générale ce que tu fais avec le résultat de la requête : affichage, etc) devrait se trouver dans le .then()

yes-man
yes-man
Niveau 13
23 septembre 2017 à 21:31:10

Ah oui je vois ok!

Je testerai lundi en gardant ça à l'esprit, je reviendrai ici si besoin.
Merci pour tes réponses :ok:

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment