J'ai un petit soucis pour passer un paramètre à ma callback.
Je lance plusieurs requêtes de suite avec une fonction postRequete :
// Variable me permettant de savoir combien j'ai lancé de requête
// et combien j'en ai traité
var gId= 0;
// Fonction appelée pour lancer mes requetes
function postRequete(url)
{
xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){callBack(xhr, url, gId);};
xhr.open("GET", url, true);
xhr.send(null);
gId++;
}
function callBack(xhr, url, myId)
{
// Ici, myId est toujours = 3 (quand readyState = 4 bien sur)
}
Le problème dans ma callBack, c'est que je ne récupère pas le gId à
l'instant du send mais celui de la dernière valeur.
Par exemple, je pose 2 requêtes avec gId = 0 puis gId = 1 et bien dans
ma callBack je récupère 3 ???
Comment pourrais je faire pour récupérer la bonne valeur ?
En fait,le plus gros problème est qu'on peut se retrouver avec des comportements qu'on ne comprend pas...
Ce n'est pas de la faute de l'outil si l'ouvrier ne sait pas l'utiliser.
Ben ... faut dire ... l'ouvrier a bien du mal ! Ces fonctions à tiroirs faut vraiment arriver à suivre :-(
Question d'habitude, je suppose. J'ai entendu dire la même chose de la POO, des fonctions récursives, des fonctions de rappels, des messages asynchrones, bref de tout ce qui sort du B-Aº procédural. Attends de voir les co-routines et les continuations, là tu va rire...
En Python, ce sont bien évidemment des références. En Javascript aussi, comme tu peux le vérifier:
J'ai regardé dans un brouteur et ... j'ai rien compris : - Yè souis perdou (dès la ligne 4 : à quoi se réfère new_data?)
c'est le nom du paramètre formel attendu par la fonction anonyme retournée par foo().
- et à quoi sert myglob finalement ?
A conserver sous le coude l'objet passé à foo() et modifié par la fonction retournée par foo. Comme ça, on peut vérifier que c'est bien une référence à cet objet (et non une copie) qui est capturé dans la fermeture. Ce qui était la question de Mickael.
(alert("quelle est la question ?"); suffit bien)
Ce code n'a pas d'autre utilité que de répondre empiriquement à la question posée par Mickael.
- je comprends seulement qu'on a bousillé myglob
s/bousillé/modifié/
(on n'a pas besoin d'enfermements pour modifier une globale)
Non, bien sûr. Le but de la manoeuvre n'est évidemment pas de montrer comment modifier une globale, mais de déterminer si ce qui est capturé par une fermeture est une copie ou une référence.
A part ça, t'a d'autres portes ouvertes à enfoncer ?-)
(comment je peux retrouver l'original myglob.answer ?)
En l'occurrence, on s'en tamponne le coquillard.
>
Là, d'un troll, on va devoir passer à faire ouvrir un nouveau ng rien que pour ce sujet !
comp.lang.functional existe déjà. Quant à créer fr.comp.lang.functionnel, vu le désert qu'est f.c.objet alors que l'OO est une approche bien plus répandue que la FP, je doute que ce soit d'un quelconque intérêt.
SAM a écrit :
Bruno Desthuilliers a écrit :
Mickaël Wolff a écrit :
Bruno Desthuilliers a écrit :
En fait,le plus gros problème est qu'on peut se retrouver avec des
comportements qu'on ne comprend pas...
Ce n'est pas de la faute de l'outil si l'ouvrier ne sait pas l'utiliser.
Ben ... faut dire ... l'ouvrier a bien du mal !
Ces fonctions à tiroirs faut vraiment arriver à suivre :-(
Question d'habitude, je suppose. J'ai entendu dire la même chose de la
POO, des fonctions récursives, des fonctions de rappels, des messages
asynchrones, bref de tout ce qui sort du B-Aº procédural. Attends de
voir les co-routines et les continuations, là tu va rire...
En Python, ce sont bien évidemment des références. En Javascript
aussi, comme tu peux le vérifier:
J'ai regardé dans un brouteur et ... j'ai rien compris :
- Yè souis perdou (dès la ligne 4 : à quoi se réfère new_data?)
c'est le nom du paramètre formel attendu par la fonction anonyme
retournée par foo().
- et à quoi sert myglob finalement ?
A conserver sous le coude l'objet passé à foo() et modifié par la
fonction retournée par foo. Comme ça, on peut vérifier que c'est bien
une référence à cet objet (et non une copie) qui est capturé dans la
fermeture. Ce qui était la question de Mickael.
(alert("quelle est la question ?"); suffit bien)
Ce code n'a pas d'autre utilité que de répondre empiriquement à la
question posée par Mickael.
- je comprends seulement qu'on a bousillé myglob
s/bousillé/modifié/
(on n'a pas besoin d'enfermements pour modifier une globale)
Non, bien sûr. Le but de la manoeuvre n'est évidemment pas de montrer
comment modifier une globale, mais de déterminer si ce qui est capturé
par une fermeture est une copie ou une référence.
A part ça, t'a d'autres portes ouvertes à enfoncer ?-)
(comment je peux retrouver l'original myglob.answer ?)
En l'occurrence, on s'en tamponne le coquillard.
>
Là, d'un troll, on va devoir passer à faire ouvrir un nouveau ng rien
que pour ce sujet !
comp.lang.functional existe déjà. Quant à créer
fr.comp.lang.functionnel, vu le désert qu'est f.c.objet alors que l'OO
est une approche bien plus répandue que la FP, je doute que ce soit d'un
quelconque intérêt.
En fait,le plus gros problème est qu'on peut se retrouver avec des comportements qu'on ne comprend pas...
Ce n'est pas de la faute de l'outil si l'ouvrier ne sait pas l'utiliser.
Ben ... faut dire ... l'ouvrier a bien du mal ! Ces fonctions à tiroirs faut vraiment arriver à suivre :-(
Question d'habitude, je suppose. J'ai entendu dire la même chose de la POO, des fonctions récursives, des fonctions de rappels, des messages asynchrones, bref de tout ce qui sort du B-Aº procédural. Attends de voir les co-routines et les continuations, là tu va rire...
En Python, ce sont bien évidemment des références. En Javascript aussi, comme tu peux le vérifier:
J'ai regardé dans un brouteur et ... j'ai rien compris : - Yè souis perdou (dès la ligne 4 : à quoi se réfère new_data?)
c'est le nom du paramètre formel attendu par la fonction anonyme retournée par foo().
- et à quoi sert myglob finalement ?
A conserver sous le coude l'objet passé à foo() et modifié par la fonction retournée par foo. Comme ça, on peut vérifier que c'est bien une référence à cet objet (et non une copie) qui est capturé dans la fermeture. Ce qui était la question de Mickael.
(alert("quelle est la question ?"); suffit bien)
Ce code n'a pas d'autre utilité que de répondre empiriquement à la question posée par Mickael.
- je comprends seulement qu'on a bousillé myglob
s/bousillé/modifié/
(on n'a pas besoin d'enfermements pour modifier une globale)
Non, bien sûr. Le but de la manoeuvre n'est évidemment pas de montrer comment modifier une globale, mais de déterminer si ce qui est capturé par une fermeture est une copie ou une référence.
A part ça, t'a d'autres portes ouvertes à enfoncer ?-)
(comment je peux retrouver l'original myglob.answer ?)
En l'occurrence, on s'en tamponne le coquillard.
>
Là, d'un troll, on va devoir passer à faire ouvrir un nouveau ng rien que pour ce sujet !
comp.lang.functional existe déjà. Quant à créer fr.comp.lang.functionnel, vu le désert qu'est f.c.objet alors que l'OO est une approche bien plus répandue que la FP, je doute que ce soit d'un quelconque intérêt.