|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : février 2012 Messages : 18 ![]() |
Bonjour,
J'ai un problème concernant deux fonctions dont une imbriqué, le résultat retourner est undefined et la valeur que je désire récuperer et stocké dans "Closure" avec le debugger de chrome. J'aimerais savoir comment accéder à cette valeur : Voici en "gros de chez gros mon code". fonction 1 Code :
Code :
Merci d'avance. |
||||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2011 Messages : 2 954 ![]() |
Bonjour,
pas tout bien compris MAIS ta fonction ne peut pas retourner autre chose que undefined attendu qu'elle ne reçoit pas de paramètre lui permettant d'identifier id. Le code que tu nous montres est à mon sens insuffisant pour cerner ton problème. |
|
|
00
|
|
|
#3 | ||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 808 ![]() |
Je rajouterais qu'en plus, vu que ta fonction getres ne retourne rien,
renverra toujours undefined : Code :
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
||
|
00
|
|
|
#4 | |||||||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 877 ![]() |
Citation:
n'ayant pas assez d'éléments pour proposer une réponse, je tente au pif-o-mètre : Code :
Code :
Code :
|
|||||||
|
|
00
|
|
|
#5 | |
![]() ![]() Inscription : janvier 2011 Messages : 2 954 ![]() |
Citation:
Je dois reconnaître que Bovino à mis le doigt sur le pourquoi le plus légitime. Reflexion: Mais combien a-t-il de doigts? |
|
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : février 2012 Messages : 18 ![]() |
Bonjour,
Merci pour vos réponses. Débutant je n'ai pas très bien compris ta réponse Bovino. Willpower j'avais pensé à faire cela mais ce qui m'amène ici est le "déroulement" de ma fonction. Je vais donc vous expliquer en détail: Code :
Les fonctions fonctionnent, le return de getres aussi, l'appel aussi. Je ne sais pas si je n'arrive pas à atteindre le return qui est fortement imbriqué via un getres(id) tout simple, si c'est une histoire de timeOut ou autre. Merci d'avance. |
||
|
|
00
|
|
|
#7 | |||||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 877 ![]() |
Citation:
Ta fonction "getres" ne renvoit toujours rien .... voila en résumé la fonction getres que tu nous donnes (sans le parametre de transaction qui est une longue fonction) : Code :
|
|||||
|
|
00
|
|
|
#8 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 808 ![]() |
Citation:
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : février 2012 Messages : 18 ![]() |
|
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : février 2012 Messages : 18 ![]() |
|
|
|
00
|
|
|
#11 | |
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 877 ![]() |
Citation:
quelle est la variable que tu souhaites retourner ? "table" ? sais-tu ce que retournes les fonctions "db.transaction" et "tx.executeSql" ? |
|
|
|
00
|
|
|
#12 | |
|
Invité de passage
![]() Inscription : février 2012 Messages : 18 ![]() |
Citation:
La variable que je souhaite retourner est table si je suis passé dans la fonction tx-resu, sinon rien si je suis passé dans tx-error. Non je ne sais pas ce que retourne ces fonctions, probablement un booleen pour tx.executeSql sans certitude. à vrai dire je ne peux disposer du code qu'après ce we. |
|
|
|
00
|
|
|
#13 | |||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 877 ![]() |
Citation:
Code :
|
|||
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : février 2012 Messages : 18 ![]() |
D'accord et bien merci.
Je te ferais part de mon retour ce we si possible ou lundi. Je m'attendais à quelque chose de très simple pour atteindre table. J'ai encore du mal à comprendre pourquoi modifier me retourne rien avant de passer dans getres et qu'ensuite getres me retourne ce que je veux (mais a priori trop tard). |
|
|
00
|
|
|
#15 |
|
Invité de passage
![]() Inscription : février 2012 Messages : 18 ![]() |
Bonjour,
Voila j'ai trouvé un post similaire à mon problème : http://stackoverflow.com/questions/6...158821#9158821 En faites avec des breaks point j'ai pu voir que ma fonction modifier() s'execute, va dans getres lors de l'appel mais que getres n'execute pas directement la fonction db.transaction mais seulement à la fin de modifier(). Comment avoir le return ... telle est la question. :/ Merci d'avance. |
|
|
00
|
|
|
#16 | ||||||||||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 877 ![]() |
c'est un problème récurrent, ton code produit probablement un appel ajax asynchrone.
c'est à dire, qu'il fait un appel externe et continue à exécuter ton code sans attendre la réponse. pour gérer la réponse, tu dois te servir de ton callback(dans le cas présent, c'est probablement les fonctions que tu passes en paramètre). explications : un code traditionnel, séquentiel, ou synchrone exécute les instructions les unes après les autres : Code :
Code :
il faut donc penser le code autrement si l'on veut que la suite des instructions accèdent à notre résultat, comme ceci : Code :
à première vue l'appel asynchrone peut te paraitre un peu plus compliqué que le synchrone, mais en réalité une fois que tu as compris le principe, c'est du pareil au même, il suffit de placer tes instructions au bon endroit. aussi, l'appel syncrhone (le premier exemple qui semble plus simple) est souvent déconseillé car il est bloquant... ton code est en pause jusqu'a obtention de la réponse alors que tu pourrais concevoir de continuer à vouloir animer ta page en javascript(ou effectuer diverses actions) en attendant une réponse du serveur. edit: Ainsi, ton return doit être géré autrement, tu dois selon le traitement que tu comptais faire du return, exécuter ce traitement non pas sur le return mais dans la fonction de callback directement. edit2: exemple, au lieu de faire : Code :
Code :
|
||||||||||
|
|
10
|
|
|
#17 |
|
Invité de passage
![]() Inscription : février 2012 Messages : 18 ![]() |
J'ai quasi fait ce que tu proposais dans ton dernier message.
Je te remercie donc pour ton aide et ta patience. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com