Tu peux t'en sortir facilement avec une fonction récursive.
function x(url) {
..http.get(url, function (response) {
....response.on('end', function () {
......if (/* not valid */) {
........x(url); // retry
......}
....});
..});
}
Évidemment donnes un autre nom que `x` à la fonction, mais le contexte ne me permet pas de donner un nom significatif.
Et si tu veux relancer ta requête en boucle tant que le résultat n'est pas valide, tu voudras éventuellement inclure un compteur de tentatives, et abandonner après un certain nombre.
Tu peux implémenter ça de la façon suivante :
function x(url, tries) {
..tries = tries || 0; // internal default value
..http.get(url, function (response) {
....response.on('end', function () {
......if (/* not valid */ && tries < /* maxTries */) {
........x(url, tries + 1); // retry
......}
....});
..});
}